1、对抗反编译:但是我觉得这个不好弄,就是对抗apktool
1、阅读反编译工具源码apktool,得到漏洞
2、从大量不同结构的apk中找到唯一
2、对抗dex2jar ;无用
3、代码混淆 ProGuard代码混淆工具;在project.properties中添加
proguard.config=proguard.cfg
这样全部混淆
但是会出现,找不到哦啊类抛出异常,可在日志中找到抛出的异常。
在配置文件中加上
-keep class * implements XXX
4、NDK 包含代码,so加壳保护
5、对抗动态调试
检测调试器
在AndroidManifest.xml 文件中加入android:debuggable="false" 如果想调试,加入代码判断程序是否被修改过,检测模拟器
getprop.ro.kernel.qemu 在模拟器中的值是1。
校验
有校验会造成程序闪退或者提示“盗版”、“破解”的软件。
是防止apk被修改和被二次打包的常用防护手段。
签名校验
完整性校验
1,有提示:
先搜索提示信息,再去signature
2,无提示:
3,IDA Pro 使用修改SOpackageManager.getPackagerName
关键字:signatures
去搜索!
也可能在SO文件中!
绕过签名先打开so;
View——String——“signature”
双击——View-A 的地方:可修改
空格,可看到图形视图
复制关键点的地址代码。
使用其他Hex 16进制编辑器打开修改。
修改后,可看业务逻辑的是否正确!
http://drops.wooyun.org/mobile/4296