应用加固

应用加固

  • 第一代:落地加载:其原理是基于 Java 虚拟机提供的动态加载技术。缺点是 Dex 落地加载,破解成本非常低。

  • 第二代:内存加载:其原理是基于 inline hook 技术对系统 read 和 write 函数添加额外的加解密处理,或直接调用 Dalvik 虚拟机提供的函数,以字节流方式加载。该加固方案虽然避免文件落地的缺陷,但缺点是解密后的 Dex 连续完整的在内存中存在。

  • 第三代:指令抽离:其原理是在类被执行时才进行函数修复,解决了 Dex 内存连续的问题。但由于指令抽离技术方案使用了大量虚拟机内部结构的特性,再加上 Android ROM 厂商复杂的定制,带来了大量的兼容性问题。

  • 第四代:Java2C:Java2C 是目前 Dex 加固保护中安全性最高的方案,与前三代 Dex 加固不同的是它脱离了虚拟提供的动态加载技术。其原理是将 Java 代码翻译成 C 并生对应的二进制文件。

上一页