(一)加固措施
加固措施 | 说明 | |
1 | 防反编译 | 对程序文件加密处理,防止攻击者通过静态反编译工具,获取到应用源代码。 代码混淆,增加破解者阅读代码难度。 混淆方法:名字混淆、控制混淆、计算混淆等。 举例:将变量替换成无意义变量,插入无关代码,修改计算等式。 |
2 | 防调试 | 动态调试:利用调试器启动或附加应用程序,可对运行时情况进行控制,可以设置断点,使进程能够停在指定代码行,并实时显示进程当前状态,甚至可通过改变特定使用目的寄存器值来控制进程执行。 保护:设置调试检测功能,以触发反调试安全保护措施,如清理用户数据、报告程序所在设备情况、禁止使用某些功能甚至直接退出运行。 |
3 | 防篡改 | 通过数字签名和多重校验防护手段,验证程序完整性,防范APK被二次打包以及盗版 |
4 | 防窃取 | 对本地数据文件、网络通信等进行加密,防止数据被窃取 |
(二)安全工具
- 国内商用:腾讯乐固、360加固和梆梆加固
- 免费工具:ProGuard是一个压缩、优化和混淆Java字节码文件的免费工具,可以删除无用类、字典、方法和属性。删除无用注释,最大限度优化字节码文件,还可以使用简短、无意义的名称来重命名已存在的类、字段、方法和属性。