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

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 层虚拟机解释执行,防止逆向分析。

参考技术A 反编译漏洞防护。反编译漏洞会暴漏App源码,给黑客二次打包的机会。黑客利用反编译漏洞可以找到App的设计流程,进行山寨、篡改、注入恶意代码;对采用积分机制的App进行破解,绕过程序的验证机制;通过暴露的URL对服务器进行恶意攻击。面对此安卓应用安全威胁,安卓开发者可以通过代码混淆、代码加密等措施进行防护,对安卓应用加密加固保护防止被破解。本回答被提问者和网友采纳 参考技术B 前言
加固说明:对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 保护后增加的文件 ;

以上是关于怎么加固安卓软件????的主要内容,如果未能解决你的问题,请参考以下文章

经过360加固的apk怎么破解

【移动安全】腾讯乐固对apk文件加固失败

安卓应用加固之静态反反汇编技术总结

安卓加固之so文件加固

什么是android apk加固

安卓一些操作