NSXPCConnection

TODO:

  • iOS IPC NSXPCConnection launchd
  • 【未解决】iOS逆向akd:NSXPCConnection的resume和active相关函数
  • 【未解决】iOS逆向akd:NSXPCConnection的exportedInterface、exportedObject等内容
  • 【已解决】iOS逆向:寻找name是com.apple.ak.auth.xpc的Server端的NSXPCConnection
  • 【未解决】iOS逆向akd:NSXPCConnection中类__NSXPCInterfaceProxy_AKAnisetteProvisioningAndSigningDeamonInterface的函数fetchAnisetteDataAndProvisionIfNecessary:device:completion:的来源
  • 【已解决】iOS逆向:frida调试hook类NSXPCConnection的setExportedObject
  • 【未解决】iOS逆向Apple账号:从com.apple.ak.anisette.xpc的NSXPCConnection获取到AKAnisetteData的过程
  • 【未解决】iOS逆向Apple账号:寻找NSXPCConnection解析调用shouldContinueWithAuthenticationResults:error:forContextID:completion:的地方
  • 【未解决】iOS逆向:NSXPCConnection发送mach消息event的逻辑
  • 【记录】iOS逆向Apple账号:重新用frida-trace追踪带NSXPCConnection的Apple账号的完整登录过程
  • 【未解决】iOS逆向Apple账号:NSXPCConnection相关
  • 【未解决】iOS逆向Apple账号:研究-[NSXPCConnection remoteObjectProxyWithErrorHandler:]返回类型是__NSXPCInterfaceProxy_AKAppleIDAuthenticationDaemonProtocol
  • 【未解决】iOS逆向Apple账号:NSXPCConnection的AuthKit的akd如何生成AKAnisetteData
  • 【未解决】iOS逆向Apple账号:-[NSXPCConnection _sendInvocation:orArguments:count:methodSignature:selector:withProxy:]
  • 【已解决】iOS逆向Apple账号:-[NSXPCConnection remoteObjectProxyWithErrorHandler:]的hook代码断点加不上
  • 【未解决】iOS逆向Apple账号:-[NSXPCConnection _sendSelector:withProxy:arg1:arg2:]
  • 【记录】iOS逆向akd:com.apple.ak.auth.xpc的NSXPCConnection相关调用逻辑和内容
  • 【规避解决】XCode实时调试NSXPCConnection的_XCT_fetchSnapshotForElement:attributes:parameters:reply错误
  • 【未解决】iOS逆向Apple账号:__88-[NSXPCConnection _sendInvocation:orArguments:count:methodSignature:selector:withProxy:]_block_invoke_3
  • 【已解决】iOS逆向akd:com.apple.ak.anisette.xpc的NSXPCConnection调用fetchAnisetteDataAndProvisionIfNecessary:device:completion:的过程
  • 【已解决】iOS逆向Apple账号:用frida打印com.apple.ak.auth.xpc的NSXPCConnection的其他属性值
  • 【未解决】iOS逆向akd:Preferences通过NSXPCConnection获取AnisetteData后触发了akd中什么函数去处理
  • 【未解决】iOS逆向akd:NSXPCConnection的init初始化相关
  • 【已解决】Xcode中Logos插件hook代码编译报错:Expected unqualified-id

XPC的NSXPCConnection的基本逻辑

  • Client端:发送消息给Server端
    • 举例
      • <NSXPCConnection: 0x282adc640> connection to service with pid 125 named com.apple.ak.anisette.xpc
        • 注:Server端的akd的PID=125
    • remoteObjectProxy
      • 含义:remote ObjectProxy== (Server端的)负责处理对应函数的所属的类 的 代理
      • 举例
        • <__NSXPCInterfaceProxy_AKAnisetteProvisioningAndSigningDeamonInterface: 0x2838ccb40>
    • remoteObjectInterface
      • 含义:Server端的所能处理哪些函数
      • 举例
        • Protocol: AKAnisetteProvisioningAndSigningDeamonInterface
          • 内部其实继承了2个protocol
            • AKAnisetteProvisioningDaemonProtocol
              • attestationDataForDevice:withRequest:completion:
              • legacyAnisetteDataForDSID:device:completion:
              • fetchAnisetteDataAndProvisionIfNecessary:device:completion:
              • eraseAnisetteForDevice:completion:
              • syncAnisetteWithSIMData:device:completion:
              • provisionAnisetteForDevice:completion:
            • AKAppleIDSigningDaemonProtocol
              • signaturesForData:options:completion:
              • absintheSignatureForData:completion:
  • Server端=Listener端:监听别人发送来的消息
    • 举例
      • <NSXPCConnection: 0x105204680> connection from pid 17416 on mach service named com.apple.ak.anisette.xpc
        • 注:Client端的Preferences的PID=17416
    • exportedObject
      • 说明:
        • 会触发到:-[NSXPCConnection setExportedObject:],设置了后续将要用的exportedObject
      • 举例
        • <AKAnisetteProvisioningService: 0x107412620>
          • 其对应着的,内部conform了2个protocol
            • AKAnisetteProvisioningDaemonProtocol
            • AKAppleIDSigningDaemonProtocol
          • 所以能支持Client端发来的消息(中的函数,然后去处理)
    • exportedInterface
      • 说明:
        • 会触发到:-[NSXPCConnection setExportedInterface:]
      • 举例
        • <NSXPCInterface: 0x107420650>

results matching ""

    No results matching ""