Android应用安全与校验之反动态调试

是不是有很多初学者认为没有拿到源码就不可以调试Android应用了?不是这样子的。只要通过反编译拿到smali代码工程,再加上smalidea调试神器,分分钟就可以在Android Studio中调试应用。即便核心代码被放到了JNI层,我们也可以使用IDA Pro继续调试,而且实例开发中能放进JNI层实现的核心代码实在有限。

为了对抗动态调试,可以考虑在源码中随意穿插相关的检测代码,在检测到动态调试时,直接进程自杀,异常退出虚拟机。

大致实现如下:

/**

*检测动态调试

*/

public void detectedDynamicDebug(){

If(!BuildConfig.DEBUG){

If(Debug.isDebuggerConnected()){

//进程自杀

int myPid = android.os.Process.myPid();

android.os.Progress.killProcess(myPid);

//异常退出虚拟机

System.exit(1);

}

}

}

这只是一个简单的例子,市面上还有很多为了加固产品做出的动态调试对抗措施,就希望大家自己去发掘了。

你可能感兴趣的:(Android应用安全与校验之反动态调试)