PPLorer 是一个 IDA 插件,用于将 PPL 调用解析为实际底层 PPL 函数。
~/.idapro/plugins/pplorer.py 符号链接到克隆仓库中的 pplorer.pyEdit -> Plugins -> PPLorer -> Analyse IDBTL;DR
在合适的位置按 CTRL-SHIFT-X 或 右键 -> Jump to PAC XREFs,将打开一个选择窗口
从调用点跳转到 PPL 函数
从 PPL 函数跳转到调用点

PPL 有一个网关,来自内核的所有调用都会到达这里。在该网关之前,每个单独的调用都会将一个预定的寄存器(X15)设置为它想要调用的 PPL 函数的选择器。 控制权将转移到 PPL 调度器,该调度器会检查是否选择了有效的函数,然后转到 PPL 函数表并调用它。 我们找到调度器,提取 PPL 函数表的大小及其地址。 然后我们检测所有来自内核端的网关调用,并获取放入 X15 中的 PPL 选择器。 对于每个调用,我们从 PPL 表中匹配一个函数,对于 PPL 表中的每个函数,我们添加所有匹配的内核调用。
作者:Cellebrite Labs 的 Omer Porzecanski。
基于 Cellebrite Labs 的 Ouri Lipner 在 Cellebrite Labs 时编写的 pacXplorer。
针对 A12+ 的 OS X、iOS 15.X+ 上的 IDA 8 开发和测试
点击这里(欢迎远程人才)