通过调研深盾科技的VirboxProtector APK加固,APK加固目前主要的保护需要注意三种。
第一点:直接对APK加固,
直接对APK加固,设置Dex函数的虚拟化保护,目前这类是安全性很高的保护方式,但是不能全选函数做虚拟化,会有性能损耗。
第二点:APK里so的加固,
APK里so的加固,如果想要安全性比较高,用apk加固时带的压缩保护安全性不够,需要单独对so进行虚拟化保护,对so加固后,再重新打包APK。
第三点:资源加密。
APK里的资源也需要加密保护的,在加密APK时选择资源文件进行加固保护。
APK加固步骤
可以总结如下6个步骤:
将需要保护的 APK 文件导入Virbox Protector 中;
设置函数选项;
设置加密选项;
设置资源加密;
设置 SO 加密
执行加固;
导入文件
将 APK 导入至 Virbox Protector中。
可通过以下两种方式将待加密的文件添加到 Virbox Protector。
1)直接拖入到 Virbox Protector2)点击工具栏的【打开文件】,选择要加密的文件
设置函数选项
Virbox Protector 可对 DEX 函数进行虚拟化保护。DEX虚拟化技术:对 DEX 中的 Dalvik 字节码进行虚拟化,转换为自定义的虚拟机指令,然后由 Native 层虚拟机解释执行。
加密选项设置
输出信息
可设置保护后生成的文件命名及存储位置。
设置选项
DEX 加密是对 DEX 文件整体压缩加密(若在Google Play上架,不建议勾选dex加密,建议选择虚拟化方式保护dex文件里的函数)
勾选反调试按钮,则使用IDA等调试工具调试时,程序会直接退出。
勾选签名校验按钮,且进行签名设置,输入自己的 keystore 文件和密码(密钥别名和密钥密码选填)
勾选文件校验:检查APK内所有文件的完整性。
勾选反注入,可以防止其它进程对 apk 或 aab 进程附加调试或注入。
勾选模拟器检测,可以防止程序在“夜神”、“雷电”、"AVD"等模拟器中运行。
勾选 root 检测,可以防止程序在 root 过后的手机上运行。
勾选多开检测,可以防止程序多开分身。
签名设置
启用签名:
勾选启用签名,需要设置keystore路径和keystore密码,设置密钥别名和密钥密码,加密后会自动签名。
如果不勾选启用签名,加密后的 apk/aab 需要手动重新做签名。
资源加密
加密APK 中的assets下的文件,支持图片、配置、脚本等文件类型。
so库保护
点击 so 保护 选项,点击选择文件,添加待保护的so库。【注】此方式选择的so库只有压缩功能,若有函数保护等需求,需要单独对so库进行保护。
点击保护选中项目
设置完成后,点击【保护选中项目】,安装保护生成后的apk即可运行。点击【保护选中项目】后,在 protected文件夹中的是加密后的apk文件。