Android防止反编译的若干方法
大约 1 分钟
Android防止反编译的若干方法
第一种方式
混淆策略
混淆策略是每个应用必须增加的一种防护策略,同时他不仅是为了防护,也是为了减小应用安装包的大小,所以他是每个应用发版之前必须要添加的一项功能
对代码的混淆
我们一般现在的破解查看Java层代码就是两种方式:
一种是直接先解压classes.dex文件出来,使用dex2jar工具转化成jar文件,然后再用jd-gui工具进行查看类结构
一种是使用apktool工具直接反编译apk,得到smali源码,阅读smali源码
不过这种代码混淆有时候在一定程度上能够增加混淆策略,但是有时候也不是很安全,因为我们知道我们在破解的过程中一般是找程序的入口,那么这些入口一般都是Application或者是MainActivity之类的,但是这些Android中的组件类是不能进行混淆的,所以我们还是有入口可寻,能够找到入口代码,然后进行跟踪。
对工程资源的混淆
微信开源的混淆
第二种方式
应用的签名 基于NDK加密,防止反编译获取加密key
第三种方式
修改Native函数名
第四种方式
反调试异常检测
第五种方式
加壳
第六种方式
防止apktool
第七种方式
防止jd-gui查看jar代码