怎么加固安卓软件????
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么加固安卓软件????相关的知识,希望对你有一定的参考价值。
加固安卓软件一般要达到以下效果:
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 层虚拟机解释执行,防止逆向分析。
加固说明:对App进行加固,可以有效防止移动应用被破解、盗版、二次打包、注入、反编译等,保障程序的安全性、稳定性。对于金融类App,尤其重要。(前言是让小白了解更多关于加固资料来源:CSDN
原文:https://blog.csdn.net/qq309909897/article/details/73273964 )
对App dex进行加固的基本步骤如下:
1. 从App原始apk文件里获取到原始dex文件
2. 对原始dex文件进行加密,并将加密后的dex文件和相关的存放到assert目录里
3. 用脱壳dex文件替换原始apk文件里的dex文件;脱壳dex文件的作用主要有两个,一个是解密加密后的dex文件;二是基于dexclassloader动态加载解密后的dex文件
4. 因为原始apk文件已经被修改,所以需要删除原始apk的签名信息,即删除META-INF目录下的.RSA、.SF 和MANIFEST.MF文件
5. 生成加固后的apk文件
6. 对加固后的apk文件进行签名,apk加固完成。
原理分析:
1.为什么要对原始dex进行加密,同时用脱壳dex文件替换原始dex文件?大部分的apk反编译工具(dex2jar、apktools、jui等)都是对dex文件进行反编译,将dex文件反编译成smail,然后再转化成class文件进行阅读和修改。用脱壳dex替换原始dex文件之后,用上面的反编译工具反编译apk文件,只能看到脱壳程序的class文件,看不到apk本身的class文件。对dex文件进行加密,这样即使第三方拿到了dex文件,以为无法解密,也就无法对其进行解析和分析。
2.怎么确保apk功能正常运行?加固后的apk启动之后,脱壳dex文件会对加密后的dex文件进行解密,然后机遇dexclassload动态加载解密后的dex文件。从用户的角度,加固前后App的功能和体验基本是一样的。这个和插件化的原理是一样的。可以参见http://blog.csdn.net/jiangwei0910410003/article/details/48104581 (前言是让小白了解更多关于加固资料来源:CSDN
原文 参考技术C ,?!。。?,!。。!,。!。。!。。?。?。。??,。?。。?。!?。?。?!。??。??。?!,。。?。。?。。??。??。????。。。。。??,??。??。?!。。,,??,。,,??,。??。!。。?, ???。?!。??。。?。。。。,,,??。。?。。?。。
Android 安全深思数盾 Virbox 加固应用 ( 购买加固服务 | 下载加固软件 | 启动加固软件 | 函数 VMP 壳设置 | 加密选项 | 资源加密 | SO 保护 )
文章目录
一、购买加固服务
深思数盾官网地址 : https://shop.shell.virbox.com/
深思数盾购 Android 加固购买地址 : https://shop.shell.virbox.com/商品
这家加固可以按月买 , 如果不需要频繁加固 , 可以考虑这个加固服务 , 不限制加固的应用个数以及次数 ;
购买之后 , 联系客服开通服务 , 之后会发送一个密码 , 账号是手机号 ;
二、下载加固软件
加固软件下载地址 : https://shell.virbox.com/down.html
这个加固不需要将应用上传到 深思数盾的后台网站 , 直接在本地进行加固 , 保密性比 360 , 百度 , 顶象 , 梆梆 等加固产品要好 ;
下载 正式版 , 这里我用的是 Windows , 下载 WIndows 系统对应的版本 ;
下载完毕后 , 下载的文件如下 virboxprotector_2.4.2.15768_windows.exe
,
直接安装该软件 , 下一步操作即可 ;
安装完成后 , 文档在安装目录的
D:\\Program Files\\senseshield\\Virbox Protector 2\\help\\VirboxProtector_cn.pdf
地址 ;
三、启动加固软件
软件的启动图标在
D:\\Program Files\\senseshield\\Virbox Protector 2\\bin\\virboxprotector.exe
可执行文件 ;
进入 virboxprotector 软件后 , 点击右上角的 " 登录授权账号 " ,
输入之前手机短信接收到的密码即可 , 账号是手机号 ;
四、函数 VMP 壳设置
在 " 函数选项 " 中 ,
点击右侧的 " 添加函数 " 按钮 ,
选择 有点点击 自己写的函数代码 , 直接选择 自己写的代码的 包名 , 右键点击后 , 选择 " 代码虚拟化 " 选项 , 就设置了该包名下的所有代码进行虚拟化操作 ;
第三方开源代码 , 可以不用添加 VMP 壳 ;
五、加密选项
这里可以一次性将所有的加固选项 , 都选择上 , 并且配置签名文件 , 及 签名文件的密码 ;
六、资源加密
启用资源加密 , 选择加密所有的 Assets 目录下的资源文件 ;
七、SO 保护
选择除了 第三方 SO 之外的所有 so 动态库 ;
八、开始加固
设置完毕后 , 在左侧的 " 文件/目录 " 一栏中 , 选择要加固的应用 , 然后选择 " 保护选中项目 " , 即可在指定目录输出加固后的应用 ;
x-release.apk 是编译出的签名后的 release 版本应用 ;
x-release.ssp.apk 是加固后的最终的应用 , 多了 60MB 的内容 , 应该是资源混淆和 so 保护后增加的文件 ;
以上是关于怎么加固安卓软件????的主要内容,如果未能解决你的问题,请参考以下文章