本博客地址:https://security.blog.csdn.net/article/details/82930825
一、在JNI_onload函数处下断点避开针对IDA的反调试
为了防止apk中的so文件被动态调试,开发者往往会使用一些反调试手段来干扰黑客的动态调试。其中最常见的就是在so文件中检测TracerPid值。通过在JNI_onload下断点即可避开反调试。
二、反调试原理
1、ptrace:是系统调用的一个方法,该方法使一个程序(追踪者)可以观察和控制另外一个程序(被追踪者)的执行,并检查和改变被追踪者的内存及寄存器。主要用于实现断点调试和追踪系统调用。
2、Android中如果一个进程被另一个进程ptrace了之后,在它的status文件中有一个字段TracerPid可以标识它是被哪个进程ptrace了。可以使用命令查看:
adb shell
ps -ef | grep 包名 //查看对应的进程号
cat /proc/进程号/status //查看TracePid值
ps | grep Trace值 //查看TracePid值对应哪个进程
3、在底层做一个循环检测这个字段值是不是0,如果不为0则代表自己的进程被别人Ptrace&#x