背景:
逆向时遇到一款App使用了第三方的安全库,效果是Xcode或者lldb调试退出,release模式正常,判定为anti_debug,不是ptrace就是相关的逻辑。
实际情况:
通过ptrace符号断点,可以看到调用顺序非常靠前,甚至在注入代码执行之前就被执行了ptrace。
请问这种情况出了修改汇编指令外,还有其他可以尝试的空间吗?
背景:
逆向时遇到一款App使用了第三方的安全库,效果是Xcode或者lldb调试退出,release模式正常,判定为anti_debug,不是ptrace就是相关的逻辑。
实际情况:
通过ptrace符号断点,可以看到调用顺序非常靠前,甚至在注入代码执行之前就被执行了ptrace。
请问这种情况出了修改汇编指令外,还有其他可以尝试的空间吗?
你能成功断点,直接hook ptrace函数不行吗。绕过它
尝试过,+load执行前就已经 PT_DENY_ATTACH
生效了
你其实可以在断点的时候执行代码的,lldb其实很强的,替代frida没问题
thanks
我正在各种尝试
thread return
实际情况:
通过ptrace符号断点,可以看到调用顺序非常靠前,甚至在注入代码执行之前就被执行了ptrace。
你先定位 真正实现ptrace地方的code,然后对其下断点
直接符号,基本被ko
+load 是必然先执行的,这个是image 加载时执行的,所以你挂在lldb肯定是被检测到了
至于检测到的原因,最简单的是ptrace,还有其他api。总之,你要定位的 是 封装系统调用的函数。然后对其下断点。
constructor 函数或许可以hook到。
大佬,thread return这招有用,学到了
如果要想通过代码来实现 thread return,以大佬的经验,这一步棋是不是走错了
背景:
定位到了代码在哪,尝试nop过,也尝试改过ptrace的参数,均导致了崩溃。hook没生效我也看了,确实没执行,这我还是第一次遇到
调用栈如下:
感谢,
尝试了几个论坛的策略,没执行前就断了连接了
感谢,我尝试了你的建议,调整了我的策略,确实捕捉到了ptrace的位置
补了点lldb的知识,确实很方便,之前过于依赖MonkeyDev了
lldb+python+xcode,可以方便地写出非常复杂的动调逻辑