Android反破解技术

破解主要分为四个步骤:反编译,静态分析,动态调试,重编译

对抗反编译

寻找反编译工具处理apk或dex时的缺陷,思路就是阅读其源码或者给大量的apk给这个工具进行压力测试

对抗静态分析

1.代码混淆技术–用SDK自带的ProGuard

2.NDK保护

3.外壳保护(爱加密,娜迦,梆梆,阿里的,360等)

对抗动态调试

1.检测调试器

在AndroidManifest.xml文件的Application标签中加入android:debuggable="false"让程序不可调试,这样,如

果别人想调试该程序就必然会修改它的值,我们在代码中检查它的值来判断程序是否被修改过

2.检测模拟器

模拟器与真实的Android设备有着许多差异,我们可以在命令提示符下执行“adb shell getprop”查看并对比它们的

属性值,经过对比发现,有如下几个属性值可以用来判断软件是否运行在模拟器中:

ro.product.model:该值在模拟器中为sdk,通常在正常手机中它的值为手机的型号。

ro.build.tags:该值在模拟器中为test-keys,通常在正常手机中它的值为release-keys。

ro.kernel.qemu:该值在模拟器中为1,通常在正常手机中没有该属性。

防止重编译

  1. 检测签名(看看程序签名的hash值是否有变化,有变化就退出)

  2. 检验保护(检验classed.dex的hash或者CRC都可以)

打赏
微信
支付宝
微信二维码图片

微信扫描二维码打赏

支付宝二维码图片

支付宝扫描二维码打赏

发表评论