原理

转载

加壳原理

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

  • 需要加密的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 应用加固技术综述相关推荐

  1. Android APK加固技术方案调研

    @author ASCE1885的 Github 简书 微博 CSDN 最近项目中需要实现自己的APK加固方案,因此就有了这一篇调研报告. 软件安全领域的攻防向来是道高一尺魔高一丈,攻防双方都处于不断 ...

  2. android安全加固方案,android安全加固技术

    先介绍5种android apk安全技术,其它后面补充 1.代码混淆 原理:本质就是改变类名.方法名,使代码可读性变差,进而保护代码 种类 混淆前 混淆后 class BookManager a fu ...

  3. Android APK加固技术初探

    这个主要是为了自己项目的安全考虑,在原始混淆后对应用的再次保护,其他的废话不多说,可自行去百度.在这里推荐使用360加固和腾讯加固,下载相关工具,附有的操作文档相信你都能看懂.用了360加固助手很有用 ...

  4. Android代码加固技术

    一. 对抗反编译工具 二. 对抗apk重打包 三. 对抗安卓模拟器 四. 对抗IDA调试so

  5. Android 移动安全知识技术全解(加固技术、常规漏洞、Android 逆向......),移动安全问题不容忽视

    前言 您的设备是否处于遭受攻击.劫持或损害的风险中?毫无疑问.剑桥大学的研究人员发现,87% 的 Android 智能手机有至少一个严重漏洞,Zimperium Labs 在早些时候发现,黑客只需通过 ...

  6. 【Android安全】Android应用加固综述

    Android应用加固综述 参考: APP加固技术历程及未来级别方案:虚机源码保护 - 顶象的文章 - 知乎 https://zhuanlan.zhihu.com/p/28257081

  7. Android 加固与监测,基于Android平台的恶意软件检测和软件加固技术研究

    摘要: 随着智能手机技术的发展,人们越来越多地把工作和生活的计算平台从传统的PC平台转移到移动平台.智能手机储存了大量的用户隐私,例如通信记录,位置信息等,因而成为攻击者的攻击目标.作为主流移动平台之 ...

  8. 百度android apk 加固,百度宣布开放应用加固技术 支持Android L应用

    腾讯科技讯(乐天)9月3日消息, 据了解,百度手机卫士正在建立移动安全平台,将输出"反病毒.反骚扰.应用保护"三个方面的移动安全能力,其中,应用加固服务是应用保护能力的核心技术. ...

  9. android 防止反编译 安全加固技术

    先说下加固技术发展历史 基础加固技术--1.代码混淆(proguard):2.签名比对:3.NDK(.so)库动态使用 第一代加固技术--动态加载(包括第一代加壳技术:落地加载): 第二代加固技术-- ...

最新文章

  1. OpenCV(项目)车牌识别1 -- 车牌提取(形态学)
  2. js 编码、解码与asp.net 编码、解码
  3. Javascript笔记:(实践篇)从jQuery插件技术说起(上篇)
  4. requests基础3
  5. (51)FPGA条件选择(case)
  6. linux添加用户、权限
  7. 关于极化码Polar code的笔记
  8. 惊艳CES!优必选Walker新一代迈出里程碑一步,仿人机器人进入家庭取得重大突破
  9. 【亲测】服务器事件查看器打不开报错,mmc无法创建管理单元怎么办
  10. 快速了解云数据库RDS
  11. python爬虫企业工商信息_Python 爬虫进阶必备 | 企业信用公示系统公告加密解析...
  12. 微信java tools_微信工具weixin-java-tools的使用总结
  13. 从零开始学java(二十六)--多维数组,多维数组存储表格数据
  14. HTTP状态代码(各种错误代码集合)超全
  15. adprw指令教程_三菱FX3U从入门到精通(全套)
  16. prim算法 源码(java)
  17. vulhub漏洞复现37_Liferay
  18. 社保html源码,社保查询.html
  19. python需要多久-python培训需要多久
  20. c语言表示整型变量,在表示 C语言的整型变量时,表示“无符号长整型”的符号是( )。...

热门文章

  1. PySnooper – 永远不要使用print进行调试
  2. 使用.Net获取OLEDB数据库的架构.
  3. 【收藏】下载Chrome商店插件的方法,万恶的gwd
  4. 金蝶云星空和旺店通·旗舰奇门单据接口对接
  5. Android仿QQ消息拖拽效果(二)
  6. 20120912,微软9月12日发布2个安全补丁
  7. bmp位图格式详细介绍-1/4/8/16/24/32bit、存储格式等
  8. 快立快调快审快执 广东一年追回欠薪2.9亿
  9. Java服务端时区的几点思考
  10. 免杀方法(三)msf加载器免杀