Android 反调试技巧之Self-Debuging/proc 文件系统检测、调试断点探测
Android 反调试技巧之Self-Debuging/proc 文件系统检测、调试断点探测 首先,我们来看看Bluebox Security(一家移动数据保护的公司)所描述的反调试方法。gDvm是一个类型为DvmGlobals的全局变量,用来收集当前进程所有虚拟机相关的信息,其中,它的成员变量vmList指向的就是当前进程中的Dalvik虚拟机实例,即一个JavaVMExt对象。以后每当需要访问当前进程中的Dalvik虚拟机实例时,就可以通过全局变量gDvm的成员变量vmList来获得,避免了在函数之间传递该Dalvik虚拟机实例。 gDvm的存在使得直接访问JDWP相关数据变得很容易。例如,gDvm。jdwpState指向包含全局调试数据和函数指针的结构。操作数据会导致JDWP线程发生故障或崩溃。下图就是Bluebox Security的具体方法: JNIEXPORT jboolean JNICALL Java_com_example_disable(JNIENV* env, jobject dontuse ){ // gDvm==struct DvmGlobals gDv...