主要观点:介绍了一款阻止调试器附着、若尝试注入代码则提前退出、带有越狱检测功能且若越狱运行会使手机崩溃的app,并分别探讨了其阻止调试器附着(PT_DENY_ATTACH
)、使手机崩溃、阻止代码注入的保护机制及绕过方法,包括通过设置断点、内联汇编、修改二进制等方式。
关键信息:
PT_DENY_ATTACH
通过ptrace
函数实现,有简单和复杂两种集成方式,简单方式直接调用函数,复杂方式通过内联汇编直接调用系统调用。- 使手机崩溃的函数是在通知
com.apple.tw.twrr
触发时运行,会进入无限循环调用+[UIScreen mainScreen]
和snapshotViewAfterScreenUpdates:
,导致内存占用过高使手机崩溃。 - 阻止代码注入是因为注入代码后丢弃了原有应用签名,导致
containerURLForSecurityApplicationGroupIdentifier:
方法返回nil
,从而使应用崩溃,可通过创建框架替换该方法来解决。
重要细节:
- 介绍了在越狱手机上使用
ssh
和debugserver
进行调试的步骤,以及在不同情况下遇到的问题和解决方法。 - 详细说明了在二进制文件中搜索
ptrace
系统调用的方法,包括使用armconverter.com
搜索指令对应的字节。 - 展示了在
lldb
中设置断点、跳过指令、获取函数地址等操作的过程。 - 提到了在不同设备(越狱和非越狱)上绕过各种保护机制的方法和注意事项。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。