代码之家  ›  专栏  ›  技术社区  ›  daybreak

在XPC服务守护进程中看到可用的词典吗?

  •  0
  • daybreak  · 技术社区  · 12 年前

    在支持xpc的osx机器上运行着一堆启动守护程序和代理程序。为了了解它们是否支持IPC而不是xpc,我寻找任何xpc函数,特别是xpc_connection_create。我的理解是,为了处理这些过程,必须通过xpc api制作一个字典,然后将其传递给播发的com.*服务。有没有什么方法可以看看每个过程中字典的参数应该是什么,而不是传递随机的东西?

    如果我有任何上述逻辑错误,请随时更正。任何建议或评论都有帮助,谢谢。

    2 回复  |  直到 12 年前
        1
  •  1
  •   Samir    12 年前

    XPC连接用于创建与XPC服务的连接,或与播发mach服务的另一个进程进行IPC。

    “xpc_connection_create”创建连接,用于向连接的另一个对等方发送消息。应该定义通信的协议,因此,通常两个对等方属于同一方。

    换句话说,如果您不拥有这些守护进程/代理,并且没有关于与之通信的协议的公开文档(无论是否通过XPC)。用这些过程进行IPC几乎是不可能的。

        2
  •  0
  •   Technologeeks    8 年前

    上述答案往好里说是不正确的,往坏里说是错误的。

    虽然这两个对等体确实应该归同一方所有,但事实并非如此。许多苹果守护程序确实通过XPC进行通信,唯一的问题是,它们是否可以从沙盒的范围内访问。一个令人惊讶的数字是。几乎不可能——非常可能,而且对于苹果文档之外的调试和调整非常有用。

    要获得协议,可以创建一个插入xpc_connection_send_message_[with_reply/syc]的库,然后使用DYLD_INSERT_LIBRARIES。这样你就能把字典翻个精光。