怎么加固安卓软件????

怎么加固安卓软件????,第1张

加固安卓软件一般要达到以下效果:

1、防逆向:通过DEX 文件加壳以及DEX 虚拟化等技术,防止代码被反编译和逆向分析。

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

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

VirboxProtector安卓加固的核心技术一般有:

DEX 文件加密隐藏

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

SO 区段压缩加密

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

单步断点检测

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

防动态调试

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

开发者签名校验

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

SO 内存完整性校验

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

SO 代码混淆

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

SO 代码虚拟化

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

DEX 虚拟机保护

对 DEX 中的 dalvik 字节码进行虚拟化,转换为自定义的虚拟机指令,最后由 native 层虚拟机解释执行,防止逆向分析。

在加固的过程中需要三个对象:

1、需要加密的Apk(源Apk)

2、壳程序Apk(负责解密Apk工作)

3、加密工具(将源Apk进行加密和壳Dex合并成新的Dex)

主要步骤:

拿到需要加密的Apk和自己的壳程序Apk,然后用加密算法对源Apk进行加密在将壳Apk进行合并得到新的Dex文件,最后替换壳程序中的dex文件即可。

得到新的Apk,那么这个新的Apk我们也叫作脱壳程序Apk,已经不是一个完整意义上的Apk程序了,他的主要工作是:负责解密源Apk.然后加载Apk,让其正常运行起来。

脱壳Dex的流程:

APK加固是对APK代码逻辑的一种保护,原理是将APK文件进行某种形式的转换,包括不限于隐藏、混淆、加等 *** 作,进一步保护软件的利益不受损坏。

常见APK应用加固主要有DEX文件、SDK文件、SO文件加固这三类。DEX加固技术包括混淆代码、整体DEX加固、拆分DEX加固、虚拟机加固、Java2C加固,当前性能最强的加固方案是Java2c,将java指令转成c/c++指令,并做虚假控制流、字符串加密等处理,逆向难度最高。SO库文件一般存放着核心算法、重要协议等重要信息。SO加固大概可以分为有源保护和无源保护,有源保护分为自解密、混淆、源码VMP等,无源保护分为加壳、VMP保护。

APK加固后,可以降低被逆向破解风险,目前有些云安全平台提供系统的APP加固服务,如网易易盾、360加固、阿里云等,想要系统提升APK安全等级可以了解下。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11950878.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存