我本人一般不习惯也不喜欢发帖子,但是看着身边人经常说自己在哪里哪里发过什么原创帖子,感觉没发过几个原创帖子都不好意思在社会上混了。

很多人觉得Android加固很牛逼,试着用各种方法去研究,然后弄个脱壳机,牛不牛逼咱不知道,写个脱壳机还是可以的。

Android加固分为Dex加固和so加固,我这里只给出脱dex的方法,本人声明仅用于学习交流目的,你们不要用它搞破坏,本人对此概不负责!!!

下面提供两种方法:

方法一:

核心思路:反射 + mCookie(其实脱壳的点太多了,这是其中一个)

步骤:

1、找到加固apk的任一class,一般选择主Application或Activity

2、通过该类找到对应的Classloader

3、通过该Classloader找到BaseDexClassLoader

4、通过BaseDexClassLoader找到其字段DexPathList

5、通过DexPathList找到其变量Element数组dexElements

6、迭代该数组,该数组内部包含DexFile结构

7、通过DexFile获取其变量mCookie和mFileName(这个名字没什么鸟用)

至此我们已经获取了mCookie

对该mCookie的解释(有些现在记不太清楚了):

#1、4.4以下好像,mCookie对应的是一个int值,该值是指向native层内存中的dexfile的指针

#2、5.0是一个long值,该值指向native层std::vector* 指针,注意这里有多个dex,你需要找到你要的

#3、我还测试了8.0手机,该值也是一个long型的值,指向底层vector,但是vector下标0是oat文件,从1开始是dex文件

// 至于你手机是那个版本,如果没有落入我上面描述的,你需要自己看看代码

8、根据mCookie对应的值做转换,最终你能找到dexfile内存指针

9、把该指针转换为dexfile结构,通过findClassDef来匹配你所寻找的dex是你要的dex

10、dump写文件

代码说明(代码包括java层和native层,但java层只需定义一个native函数即可):

1、代码核心部分为dump_dex.h 和 dump_dex.cpp,里面涉及你需要自行实现的部分(我测试用的5.0.2 moto手机,

如果你的手机版本或者手机型号不同,你可能需要修改我表明的地方)

2、代码相对简单,你可以自行阅读

坑:

此方法思路相对简单,但是操作相对繁琐

1、你需要重打包apk

2、如果遇到签名校验,你同时需要在重打包中加入hook签名代码

方法二:

核心思路(方法数不胜数,这是其中一个毕竟简单的):

hook系统libart.so的ClassLinker->DefineClass函数

hook工具:

frida

这里提供了两种测试方式:

1、基于命令行的(dexcl.js)

2、基于python程序的(dumpdex.js + main.py)

注意:

你可能需要修改的地方(代码已经对可能需要修改的地方进行了标明)

1、我测试手机是moto 5.02版本,不同版本不同手机该导出函数的原型可能不同,你需要修改

2、有函数原型不同的原因,传入参数可能需要修改,相应的Interceptor.attach的args相关需要进行修改

3、你的class descriptor需要修改为你要找的dex的里面任一类(如Lcom/example/hello/MainApplication;)

4、python中的相应的class descriptor,js文件路径,保存dump的dex路径

测试机型 moto 5.02,frida版本12.6.8

脱壳方法千千万,特别是方法二的思路千千万,随便找个点秒脱,记住他们在变也不会脱离系统机制,否则谁也玩不起来。

关于适配,代码里都有标明,相信只要你会编程和汇编都可以轻松搞定。

受大家影响,没个github都不好意思混了,欢迎学习交流。

最后于 2019-7-30 17:12

被angelToms编辑

,原因: 修改链接

常用的android脱壳工具,Android万能脱壳机相关推荐

  1. Android开发工具Android Studio、Android SDK和Genymotion完全配置

    所谓"工欲善其事,必先利其器".Android Studio 是谷歌推出一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT,Androi ...

  2. android 测试工具,Android开源项目第四篇:开发及测试工具篇

    本文为那些不错的Android开源项目第四篇--开发工具篇,**主要介绍Android开发工具和测试工具相关的开源项目**. Android开源项目系列汇总已完成,包括: 1.Buck faceboo ...

  3. android集成测试工具,android – 集成测试和Cucumber测试

    要使用Gradle命令行工具启用Android Test Orchestrator,请完成以下步骤: android { defaultConfig { ... testInstrumentation ...

  4. android 清理工具,Android 版 Avira Optimizer 是 Android 手機清理工具

    隨著時間推移,應用程式.相片.視訊和音樂會塞滿您的手機或平板電腦,拖慢系統性能.適用於 Android 的 Avira Optimizer 是最佳的 Android 清理工具,其中包括: Smart ...

  5. android 实用工具,android实用工具高效

    一 .Android Debug Database Android Debug Database是一个非常酷的开源工具,完全改变了debug 数据库和shared preferences的方式.现在你 ...

  6. android 以太网工具,Android使用ethtool工具查询/设置以太网网卡状态

    一.编译ethtool工具 Android命令行中不含ethtool工具,所以需要自己编译. 1.下载最新源码:ethtool-4.5.tar.xz 源码地址: 2.解压 把ethtool-4.5.t ...

  7. android oom工具,Android OOM-Heap,MAT工具检测内存泄露

    概述 在android的开发中,要时刻主要内存的分配和垃圾回收,因为系统为每一个dalvik虚拟机分配的内存是有限的,在google的G1中,分配的最大堆大小只有16M,后来的机器一般都为24M,实在 ...

  8. 360加固一键脱壳工具2020_如何脱壳加固过的Apk并利用其API“走近数据库”

    0x00 寻找突破口 打开首页,emm 就一个登录页面,没了 随便写点东西提交看看 天生手欠的我一不小心就多输了一个单引号 WDNMD,除了数字和字母其他都不行? 这叫我怎么测? 刚刚要放弃,就在这时 ...

  9. android meta工具,android ota 升级包制作分析 (5 工具)

    工具 1 mkbootfs mkbootfs的源代码在system/core/cpio中. ? ? mkbootfs -f boot_filesystem_config.txt targetfiles ...

  10. android arp工具,Android内网攻击防御安全测试工具(开源)

    想必经历过4M宽带小水管年代的小伙伴,大多都晓得P2P终结者这枚网管神器,它可以通过ARP协议的漏洞来达到限制同一路由器下其他电脑网速的目的. 如今移动互联网时代飞速发展,大家都用上了50M.甚至10 ...

最新文章

  1. 如何使用SMOD和CMOD进行SD的用户增强
  2. [SCOI2007]降雨量
  3. 学习select(函数)
  4. FreeSql (三)实体特性
  5. 高度为5的3阶b树含有的关键字个数_第15期:索引设计(索引组织方式 B+ 树)
  6. Beam概念学习系列之SDKs
  7. 就地过年的年轻人都去搜索“年夜饭”外卖了
  8. 集合运算 蓝桥杯 set容器
  9. vue+高德地图 点击地图获取经纬度和详细地址
  10. vuecli添加和移除插件_『Clickteam Fusion插件开发基础』
  11. 坚果云根目录同步冲突解决方法
  12. 向量运算(点积,叉积)
  13. 小程序canvas画入圆形图片
  14. Reading Ingestion —— Paxos Made Simple
  15. oracle hot patch david,Hotpatch文件介绍
  16. linux如何做动态壁纸实验报告,Ubuntu制作动态壁纸
  17. python爬虫爬取豆瓣电影信息城市_Python爬虫入门 | 2 爬取豆瓣电影信息
  18. RRT_star MATLAB
  19. 74HC165并转串级联芯片学习记录
  20. 数据分析师三个等级_【数据分析课|这三个等级的数据分析师报考条件,一定是你需要的】- 环球网校...

热门文章

  1. 作为程序员,如何防辐射?
  2. 祝酷狗猴年快乐,网易云称其耍猴
  3. 计算机中模拟和数字信号,模拟信号和数字信号的区别是什么
  4. Linux安装flux护眼软件
  5. Android SDK是什么
  6. 水桶平分 java,JAVA路线
  7. Cocos2d-xV3.17.2获取csb文件按钮组件并绑定事件
  8. jeecms9.0常用标签
  9. 伦斯勒理工大学计算机专业好申请吗,伦斯勒理工学院申请条件
  10. Java去除空格符号