Terminated due to signal 5

调试一个app时候,发现它调用了ptrace,然后我把ptrace hook掉后,xcode直接退出了
抛出这样的信息Message from debugger: Terminated due to signal 5,这是?

现在的 App 一般采取多重反调试判断,你可能还需要拦截额外的系统调用。

可参考 ZZ 大佬的这篇文章:反调试与绕过的奇淫技巧

ptrace hook还会个给signal 5,好像有啥检测机制?

这个不一定,可能是多重检测机制导致的,任何地方都可能抛出这个 signal,有两个办法可以无脑绕过这些检测:

  1. 用 xia0LLDB 的 debugme 命令做动态 patch,这个使用简单:GitHub - 4ch12dy/xia0LLDB: LLDB python scripts for iOS arm64 reversing by xia0
  2. 用 HookZz (Dobby) 的 AntiDebugBypassModule,这个稳成一匹马,一般编译链接了直接使用即可,但是如果 App 是壳工程需要修改一下主二进制动态库对应的 image index: HookZzModules/AntiDebugBypass at master · jmpews/HookZzModules · GitHub

像常规sysctl,dlsym,syscall,ptrace我都屏蔽掉了,但是还是不行。他应该还有其他的检测机制,但是我还没有找到?不搞掉这个,我无法用lldb来调试它,郁闷?想抓数据,还设置了代理检测,我把其中一个iOS代理搞掉了,但是还是不行? 不知道大神有这方面的经验吗?我的qq:285104105

还有直接使用 svc 的系统调用方式,不是常规的函数 hook 就能以偏概全的。建议你踏下心来读一下我上面给出的 Zz 的文章和 Module,里面的常规操作及其绕过都包含了。

svc系统调用的方式,我搜了汇编代码,里边没有的。好多,多谢

仔细看一下 image list,是否有额外的动态库挂载,你可能没有看全。当然还有另一种可能是除了这种系统的反调试机制,还有自定义的一些机制,比如定时器。

我把所有动态库都打印出来,除了系统自动动态库,就是hook加载这两动态库,libsubstrate.dylib ,libcycript.dylib,其他的就没有了。

他用到了,FrontBoardServices [FBSWorkspace client:handleCreateScene:withCompletion:
PrivateFrameworks/FrontBoardServices.framework 这是私有框架,但是还没有搞明白?

QQ加你了, 把包发过来瞅瞅看.

libsubstrate.dylib ,libcycript.dylib FrontBoardServices.framework
除了这几个在没别的了