应用加固
应用加固
-
第一代:落地加载:其原理是基于
Java 虚拟机提供的动态加载技术。缺点是Dex 落地加载,破解成本非常低。 -
第二代:内存加载:其原理是基于
inline hook 技术对系统read 和write 函数添加额外的加解密处理,或直接调用Dalvik 虚拟机提供的函数,以字节流方式加载。该加固方案虽然避免文件落地的缺陷,但缺点是解密后的Dex 连续完整的在内存中存在。 -
第三代:指令抽离:其原理是在类被执行时才进行函数修复,解决了
Dex 内存连续的问题。但由于指令抽离技术方案使用了大量虚拟机内部结构的特性,再加上Android ROM 厂商复杂的定制,带来了大量的兼容性问题。 -
第四代:Java2C:
Java2C 是目前Dex 加固保护中安全性最高的方案,与前三代Dex 加固不同的是它脱离了虚拟提供的动态加载技术。其原理是将Java 代码翻译成C 并生对应的二进制文件。