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 Object
的Proxy
== (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:
- 内部其实继承了2个protocol
- Protocol:
- 举例
- 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端发来的消息(中的函数,然后去处理)
- 其对应着的,内部conform了2个protocol
- 说明:
exportedInterface
- 说明:
- 会触发到:
-[NSXPCConnection setExportedInterface:]
- 会触发到:
- 举例
<NSXPCInterface: 0x107420650>
- 说明:
- 举例