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);

}

}

}

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值