这个程序绝对不是间谍软件。
请尽快在你的 64 位 iOS 设备上运行它。
你的配合将获得奖励。
[ 在线版本:totally-not.spyware.lol ]
前端和 WebKit 漏洞利用位于 /root。
内核漏洞利用位于 /glue。
后渗透阶段位于 /glue/dep。
DoubleH3lix 和 Meridian 可以在各自的目录中分别通过 make headless 和 make all 独立构建为静态库。
这些静态库随后用于构建 /glue 中的 payload,该二进制文件是在 WebKit 漏洞利用之后通过 JIT 运行的。只需执行一个 make 即可构建,并将按需构建所有依赖项。
最后,在 /root 中运行 make 即可将所有部分与 WebKit 漏洞利用串联起来,此过程同样会按需构建依赖项。
我们最初想将 WebKit 补丁反向移植到 10.x,但最终放弃了。
详见 /patch,但要点如下:
WebKit 缺陷的一部分是 JSC::DFG::clobberize 中的错误预测,它本质上是一个巨大的 switch-case。对此的修复方案是将某些值重新路由到已被其他值使用的块。
在我们检查过的版本中,编译器已经为此生成了跳转表,所以我们的想法是直接找到并修补所有这些跳转表,因为正确的代码理应已经存在。
问题在于,所有内容所依赖的值在 iOS 10 的生命周期内已经改变了数百次(是的,比 iOS 版本发布的次数还要频繁得多),而且代码附近似乎没有任何路标,因此我们几乎不可能确定要修补哪些值。:(