Jai*_*ken 5 iphone-privateapi ios
使用otool -tV SpringBoardServices命令,我能够在SpringBoardServices框架二进制中获得C函数.
我可以看到SBFrontmostApplicationDisplayIdentifier哪个会给我最重要的应用程序的ID.这个id可以用于获取UIApplication吗?最终,我想获得最顶级的视图,即消费触摸事件及其类型如UIButton等?
任何帮助赞赏.
这不是一个真正的答案,只是对这个问题的一些想法。
C 与 Objective C API 的比较
一般来说,有两种类型的 API:C API(如 SBFrontmostApplicationDisplayIdentifier)和目标 C API。
我相信所有 C API 都只适用于原始类型(字符串、整数等)。我没有看到任何返回 Objective C 对象的 C API。
SBFrontmostApplicationDisplayIdentifier 返回 id(只是一个字符串)。作为首选项应用程序的示例“com.apple.Preferences”。
我相信你会更幸运地寻找返回任何类型对象的 Objective C API
进程间通信
没有简单的方法可以在进程之间传输对象(尤其是指向其他对象的复杂对象,这些对象又指向其他对象等等)。如果您考虑一下,UIApplication 对象可以引用应用程序的一半。唯一的方法是在一端序列化所有内容并在另一端反序列化。
考虑到与对象序列化相关的问题,大多数需要进行进程间通信的API都会相互传递带有最关键信息的简单结构。我在对 iOS 二进制文件进行逆向工程时正是看到了这种模式。
UI应用程序
想法
尝试查看 BackboardService
尝试查看 SpringboardService 中的所有 API
我会尝试寻找任何与显示相关的东西。
PS 我很想看到解决方案,因为我不知道有任何 API 可以提供对第 3 方应用程序 UI 的可见性。