求指点:有谁遇到过在+load调用之前就执行的情况吗

背景:
逆向时遇到一款App使用了第三方的安全库,效果是Xcode或者lldb调试退出,release模式正常,判定为anti_debug,不是ptrace就是相关的逻辑。

实际情况:
通过ptrace符号断点,可以看到调用顺序非常靠前,甚至在注入代码执行之前就被执行了ptrace。

请问这种情况出了修改汇编指令外,还有其他可以尝试的空间吗?

你能成功断点,直接hook ptrace函数不行吗。绕过它

尝试过,+load执行前就已经 PT_DENY_ATTACH 生效了 :joy:

你其实可以在断点的时候执行代码的,lldb其实很强的,替代frida没问题

thanks

我正在各种尝试 :ok_hand:

thread return

实际情况:
通过ptrace符号断点,可以看到调用顺序非常靠前,甚至在注入代码执行之前就被执行了ptrace。

你先定位 真正实现ptrace地方的code,然后对其下断点

直接符号,基本被ko

+load 是必然先执行的,这个是image 加载时执行的,所以你挂在lldb肯定是被检测到了
至于检测到的原因,最简单的是ptrace,还有其他api。总之,你要定位的 是 封装系统调用的函数。然后对其下断点。

constructor 函数或许可以hook到。

大佬,thread return这招有用,学到了

如果要想通过代码来实现 thread return,以大佬的经验,这一步棋是不是走错了

背景:
定位到了代码在哪,尝试nop过,也尝试改过ptrace的参数,均导致了崩溃。hook没生效我也看了,确实没执行,这我还是第一次遇到 :joy:

调用栈如下:

感谢,
尝试了几个论坛的策略,没执行前就断了连接了

感谢,我尝试了你的建议,调整了我的策略,确实捕捉到了ptrace的位置 :+1:

补了点lldb的知识,确实很方便,之前过于依赖MonkeyDev了 :+1:

lldb+python+xcode,可以方便地写出非常复杂的动调逻辑