什么是android apk加固

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-01
APK加固原理是什么?如何进行android apk加固?

APK加固是对APK代码逻辑的一种保护,原理是将APK文件进行某种形式的转换,包括不限于隐藏、混淆、加等操作,进一步保护软件的利益不受损坏。
常见APK应用加固主要有DEX文件、SDK文件、SO文件加固这三类。DEX加固技术包括混淆代码、整体DEX加固、拆分DEX加固、虚拟机加固、Java2C加固,当前性能最强的加固方案是Java2c,将java指令转成c/c++指令,并做虚假控制流、字符串加密等处理,逆向难度最高。SO库文件一般存放着核心算法、重要协议等重要信息。SO加固大概可以分为有源保护和无源保护,有源保护分为自解密、混淆、源码VMP等,无源保护分为加壳、VMP保护。
APK加固后,可以降低被逆向破解风险,目前有些云安全平台提供系统的APP加固服务,如网易易盾、360加固、阿里云等,想要系统提升APK安全等级可以了解下。

你好,加固前不需要做代码混淆,直接提交原包进行加固即可。android 自带的代码混淆只是增加了破解者阅读代码的难度,并不能从根本上防止破解。加固是从多维度对代码进行保护,所以安全性更高。

加固的过程中需要三个对象:1、需要加密的Apk(源Apk)2、壳程序Apk(负责解密Apk工作)3、加密工具(将源Apk进行加密和壳Dex合并成新的Dex)主要步骤:我们拿到需要加密的Apk和自己的壳程序Apk,然后用加密算法对源Apk进行加密在将壳Apk进行合并得到新的Dex文件,最后替换壳程序中的dex文件即可,得到新的Apk,那么这个新的Apk我们也叫作脱壳程序Apk.他已经不是一个完整意义上的Apk程序了,他的主要工作是:负责解密源Apk.然后加载Apk,让其正常运行起来。

  1. 混淆代码?

  2. 签名

  3. 以上两项保护自己的开发成果



android apk加固一般要达到以下效果:
1、防逆向:通过DEX 文件加壳以及DEX 虚拟化等技术,防止代码被反编译和逆向分析。

2、防篡改:通过校验 APK 开发者签名,防止被二次打包,植入广告或恶意代码。

3、防调试:防止应用被 IDA、JEB 等工具调试,动态分析代码逻辑。

VirboxProtector对android apk加固的核心技术有:
DEX 虚拟机保护:对 DEX 中的 dalvik 字节码进行虚拟化,转换为自定义的虚拟机指令,最后由 native 层虚拟机解释执行,防止逆向分析。

DEX 文件加密隐藏:对 DEX 文件加壳保护,防止代码被窃取和反编译。

SO 区段压缩加密:对 SO 库中的代码段和数据段压缩并加密,防止被 IDA 等工具反编译。

单步断点检测:在混淆的指令中插入软断点检测暗桩,防止native层run trace和单步调试。

防动态调试:防止应用被 IDA、JEB 等工具调试,动态分析代码逻辑。

开发者签名校验:对 APK 中的开发者签名做启动时校验,防止被第三方逆向和二次打包。

SO 内存完整性校验:在 SO 库加载时校验内存完整性,防止第三方对 SO 库打补丁。

SO 代码混淆:对 SO 库中指定的函数混淆,通过指令切片、控制流扁平化、立即加密等技术手段,将 native 指令转换为难以理解的复杂指令,无法被 IDA 反编译,并且无法被还原。

SO 代码虚拟化:对 SO 库中指定的函数虚拟化,可以将 x86、x64、arm32、arm64 架构的机器指令转换为随机自定义的虚拟机指令,安全强度极高,可通过工具自定义配置,调整性能与安全性。

这个当然可以的啊