首页
论坛
课程
招聘
[原创]Android整体脱壳个人总结
2020-11-7 12:10 6992

[原创]Android整体脱壳个人总结

2020-11-7 12:10
6992

写在前面

个人对整体壳脱壳方法做了一些自己的总结,本人菜鸡一个,下面描述如果不对,欢迎指摘。

 

1. 内存dump

dex开头会有标志性标志dex035 /dex036/ dex037等关键标志

 

在dex偏移0x20处有4个字节存储dex的大小

 

比如

 

https://github.com/hluwa/FRIDA-DEXDump.git

 

核心原理就是在内存中暴力搜索dex035等标志去搜索和dump dex的

 

 

或者其他一些在IDA上使用的dump工具。

 

这类的方法基本上只能应对整体壳,针对类抽取壳,如果是恢复后就回填不再抽取出来的类型,就需要看时机了。

2. hook关键函数

hook大法:通过frida、Xposed或者其他一些hook工具 hook 比如dalvik时代的dvmDexFileOpenPartial函数,

 

 

6.0和7.0的OpenMemory函数

 

 

8.0-10.0上的OpenCommon函数

 

 

在这些函数的参数中基本上都会有关于起始地址、dex文件大小的参数,作为关键参数,方便在逆向时dump出dex

 

比如

 

https://github.com/WrBug/dumpDex.git

 

工具使用Xposed结合Native hook的一些其他hook工具对APP进行注入和hook,最终实现dumpdex的效果

 

 

 

再比如

 

https://github.com/GuoQiang1993/Frida-Apk-Unpack.git

 

 

是使用frida 去hook以上所说这些函数进行hook进行dump

 

这些函数其实也是只能针对整体壳的方式去进行dex的dump

3. 定制源码

事实上正如寒冰老师所说,在Art时代由于DexFile对象类定义时,存在Begin()和Size()函数

 

 

实际上在任何包含DexFile类型参数的地方其实都可以

 

甚至于由于ArtMethod有获取对应DexFile的函数

 

 

那么其实在任何出现ArtMethod的地方其实都可以dump 出dex,只是脱壳点好与坏的问题


后记

关于整体加固的方法,暂时就总结到这里,关于函数抽取类型的加密,目前公开的脱壳方法都是主动调用去解决的,这些方式基本上都是使用主动调用实现的。

 

这里就列出来源码以及对应文章吧

 

源码: DexHunter

 

具体原理

 

源码: FUPK3

 

原理介绍

 

源码:FART

 

原理介绍

参考

https://juejin.im/entry/6844903449004343303


2022 KCTF春季赛【最佳人气奖】火热评选中!快来投票吧~

最后于 2020-11-7 12:15 被Simp1er编辑 ,原因:
收藏
点赞12
打赏
分享
最新回复 (8)
雪    币: 9865
活跃值: 活跃值 (4383)
能力值: ( LV11,RANK:198 )
在线值:
发帖
回帖
粉丝
neilwu 活跃值 1 2020-11-8 08:41
2
0
点赞
雪    币: 751
活跃值: 活跃值 (2345)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
葫芦娃 活跃值 1 2020-11-9 16:37
3
0

巧了,正好写了一个  :《深入 FRIDA-DEXDump 中的矛与盾》

最后于 2020-11-9 16:37 被葫芦娃编辑 ,原因:
雪    币: 3154
活跃值: 活跃值 (2274)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
windy_ll 活跃值 2 2020-11-9 19:20
4
0
雪    币: 1526
活跃值: 活跃值 (233)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
木羊 活跃值 2020-11-10 08:50
5
0
挺全的,找时间补点细节更好了
雪    币: 1454
活跃值: 活跃值 (192)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
愤怒的平头哥 活跃值 2020-11-10 09:20
6
0
666
雪    币: 36
活跃值: 活跃值 (400)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
芃杉 活跃值 2020-11-10 14:00
7
0
mark
雪    币: 235
活跃值: 活跃值 (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mb_citgcepy 活跃值 2020-11-12 07:19
8
0
雪    币: 654
活跃值: 活跃值 (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
miyuecao 活跃值 2020-11-13 09:59
9
0
总结的很全面
游客
登录 | 注册 方可回帖
返回