当前安卓APP加固到底该如何做到防篡改?

加固和 dump 针锋相对并不新鲜,但我们的工作,就是要不断提升反编译的难度。目前的技术方案,可以比较有效地对 DEX 文件进行加壳防护,防止被静态反编译工具破解获取源码,可以防止通过在内存中破解获取源码。

我们可以通过混淆代码的方式,对编译好的class文件进行混淆处理,处理后的代码与处理前代码能够完成相同的功能,但混淆后的代码很难被反编译,即使反编译成功也很难得出程序的真正语义。比如 ProGuard 就是一个混淆代码的开源项目,它不仅能够保护代码,而且能够精简编译后的程序大小,减少内存占用。

对 DEX 文件进行加壳防护仍然是需要的,我们可以选择整体 DEX 加固或者拆分 DEX 加固的方式,隐藏源码防止直接性的反编译。拆分 DEX 加固需要注意 DEX 文件的数据结构,选取 classdata 和 classcode 这两部分,即使拆分出来也不会泄露 class 数据和字节码数据,反编译出来也不完整,安全性较高。尤其是虚拟机加固的方式,对字节做一些变化处理,即使把替换后的数据恢复了,也不会变形成为之前的字节码,安全系数较高。详细原理请参阅: 一文了解安卓APP逆向分析与保护机制

相关阅读

网易云 Android 应用加固 免费试用,有效防止应用被逆向分析、反编译、二次打包,核心功能包括 DEX 加固,SO 加密保护,内存防 Dump 保护,防调试器,防模拟器等。

猜你喜欢

转载自www.cnblogs.com/163yun/p/8856366.html
今日推荐