Android 应用加固技术综述
原理
转载
加壳原理
加固的过程中需要三个对象:
- 需要加密的Apk(源Apk)
- 壳程序Apk(负责解密Apk工作)
- 加密工具(将源Apk进行加密和壳Dex合并成新的Dex)
主要步骤:
- 用加密算法对源Apk进行加密,形成加密的DEX文件
- 将加密的DEX文件与壳Apk进行合并得到新的Dex文件
- 用新的Dex文件替换壳程序中的dex文件,得到新的Apk。修改壳程序dex文件头中的checksum、signature 和file_size的信息,并且要附加加壳的apk的长度信息在dex文件中,以便我们进行解壳保证原来apk的正常运行。加完壳后整个文件的结构如下:
这个新的Apk叫作脱壳程序Apk,已经不是一个完整意义上的Apk程序了,他的主要工作是:负责解密源Apk,然后加载Apk,让其正常运行起来。
脱壳原理
通过反射置换android.app.ActivityThread 中的mClassLoader为加载解密出APK的DexClassLoader,该DexClassLoader一方面加载了源程序、另一方面以原mClassLoader为父节点,这就保证了即加载了源程序又没有放弃原先加载的资源与系统代码。
找到源程序的Application,通过反射建立并运行。这里需要注意的是,我们现在是加载一个完整的Apk,让他运行起来,那么我们知道一个Apk运行的时候都是有一个Application对象的,这个也是一个程序运行之后的全局类。所以我们必须找到解密之后的源Apk的Application类,运行的他的onCreate方法,这样源Apk才开始他的运行生命周期。这里我们如何得到源Apk的Application的类呢?这个我们后面会说道。使用meta标签进行设置。
产品化方案
国内提供APK加固技术方案的第三方技术公司有:娜迦、爱加密、梆梆加固、360加固、百度加固、腾讯加固等。
功能概述及其使用
阿里聚安全 链接:http://jaq.alibaba.com/
- 上传应用
- 提供安全扫描(漏洞扫描、恶意代码扫描、仿冒应用扫描)
- 可以从结果知道漏洞总数,如果是认证过的开发者,可以直接得知漏洞的具体位置。其中还有部分漏洞需要付费扫描。
- 然后我们可以进行应用加固,其中分快速加固和多渠道加固,可以按需选择 加固包下载(应用需要重新签名)
腾讯云应用乐固 链接:https://www.qcloud.com/product/cr
- 上传应用
- 默认服务类型:
- 应用加固
- 漏洞检测
- 渠道监控
- 可选服务类型:
- 适配分析(每天可以有一次)
- 质量跟踪(即接入腾讯的bugly进行异常追踪)
- 之后我们可以得到应用的基本信息、加固包、缺陷分析、应用检测
- 选择下载加固包(应用需要重新签名)的同时还提供了签名及多渠道打包工具、自动加固工具的下载使用
360加固保 链接:http://jiagu.360.cn/
- 上传应用
- 提供加固基础服务:
- DEX文件加密
- 防二次打包
- APK大小优化
- 防DEX内存截取
- 应用盗版检测
- 加固数据分析服务
- 可选增强服务:
- 崩溃日志分析(即接入360的bug追踪)
- 支持x86框架(约增大apk大小400k左右)
梆梆加固 链接:https://dev.bangcle.com/
- 上传应用
- 提供功能:安全评估(更多定制化的评估,需联系客户并且收费)、应用加固(认证过的开发者还提供:报告下载,多渠道打包)
- 评估结果提供了风险的详情,位置及解决方案
- 提供对加固后的包再进行快速评估
- 选择下载加固包(应用需要重新签名)的同时还提供了加固工具的下载使用
爱加密 链接:http://safe.ijiami.cn/
- 上传应用并直接执行加密.需要注意其中有一个选项:防止二次打包,请按需选择
- 可以对加固后的包申请渠道检测,除了加固包的下载,还提供了签名工具的下载荐
对比分析
体积(体积小的为优):360 > 腾讯 > 爱加密 > 阿里 > 梆梆
兼容性: 阿里 > 腾讯 > 360 = 梆梆 > 爱加密
启动速度(时间短为优): 阿里 > 爱加密 > 360 = 梆梆 > 腾讯
漏洞: 腾讯 > 爱加密 > 360 > 梆梆 > 阿里
参考资料
http://blog.csdn.net/jiangwei0910410003/article/details/48415225
http://blog.csdn.net/u011216417/article/details/70307031
http://xhrong.github.io/attachments/基于Android平台的软件加固方案的设计与.pdf
Android 应用加固技术综述相关推荐
- Android APK加固技术方案调研
@author ASCE1885的 Github 简书 微博 CSDN 最近项目中需要实现自己的APK加固方案,因此就有了这一篇调研报告. 软件安全领域的攻防向来是道高一尺魔高一丈,攻防双方都处于不断 ...
- android安全加固方案,android安全加固技术
先介绍5种android apk安全技术,其它后面补充 1.代码混淆 原理:本质就是改变类名.方法名,使代码可读性变差,进而保护代码 种类 混淆前 混淆后 class BookManager a fu ...
- Android APK加固技术初探
这个主要是为了自己项目的安全考虑,在原始混淆后对应用的再次保护,其他的废话不多说,可自行去百度.在这里推荐使用360加固和腾讯加固,下载相关工具,附有的操作文档相信你都能看懂.用了360加固助手很有用 ...
- Android代码加固技术
一. 对抗反编译工具 二. 对抗apk重打包 三. 对抗安卓模拟器 四. 对抗IDA调试so
- Android 移动安全知识技术全解(加固技术、常规漏洞、Android 逆向......),移动安全问题不容忽视
前言 您的设备是否处于遭受攻击.劫持或损害的风险中?毫无疑问.剑桥大学的研究人员发现,87% 的 Android 智能手机有至少一个严重漏洞,Zimperium Labs 在早些时候发现,黑客只需通过 ...
- 【Android安全】Android应用加固综述
Android应用加固综述 参考: APP加固技术历程及未来级别方案:虚机源码保护 - 顶象的文章 - 知乎 https://zhuanlan.zhihu.com/p/28257081
- Android 加固与监测,基于Android平台的恶意软件检测和软件加固技术研究
摘要: 随着智能手机技术的发展,人们越来越多地把工作和生活的计算平台从传统的PC平台转移到移动平台.智能手机储存了大量的用户隐私,例如通信记录,位置信息等,因而成为攻击者的攻击目标.作为主流移动平台之 ...
- 百度android apk 加固,百度宣布开放应用加固技术 支持Android L应用
腾讯科技讯(乐天)9月3日消息, 据了解,百度手机卫士正在建立移动安全平台,将输出"反病毒.反骚扰.应用保护"三个方面的移动安全能力,其中,应用加固服务是应用保护能力的核心技术. ...
- android 防止反编译 安全加固技术
先说下加固技术发展历史 基础加固技术--1.代码混淆(proguard):2.签名比对:3.NDK(.so)库动态使用 第一代加固技术--动态加载(包括第一代加壳技术:落地加载): 第二代加固技术-- ...
最新文章
- OpenCV(项目)车牌识别1 -- 车牌提取(形态学)
- js 编码、解码与asp.net 编码、解码
- Javascript笔记:(实践篇)从jQuery插件技术说起(上篇)
- requests基础3
- (51)FPGA条件选择(case)
- linux添加用户、权限
- 关于极化码Polar code的笔记
- 惊艳CES!优必选Walker新一代迈出里程碑一步,仿人机器人进入家庭取得重大突破
- 【亲测】服务器事件查看器打不开报错,mmc无法创建管理单元怎么办
- 快速了解云数据库RDS
- python爬虫企业工商信息_Python 爬虫进阶必备 | 企业信用公示系统公告加密解析...
- 微信java tools_微信工具weixin-java-tools的使用总结
- 从零开始学java(二十六)--多维数组,多维数组存储表格数据
- HTTP状态代码(各种错误代码集合)超全
- adprw指令教程_三菱FX3U从入门到精通(全套)
- prim算法 源码(java)
- vulhub漏洞复现37_Liferay
- 社保html源码,社保查询.html
- python需要多久-python培训需要多久
- c语言表示整型变量,在表示 C语言的整型变量时,表示“无符号长整型”的符号是( )。...