首页
社区
课程
招聘
[原创]Frida-Apk-Unpack 脱壳工具
发表于: 2019-6-12 15:14 29919

[原创]Frida-Apk-Unpack 脱壳工具

2019-6-12 15:14
29919

APK常规加固脱壳脚本(测试过某60的免费版和商业版)

对于类抽取需要另外Dump出每个类的Inscode然后Patch到脱出Dex文件上,不然Dex文件每个方法都是空的


参考

dstmath的frida-unpack   https://github.com/dstmath/frida-unpack

xiaokangpwn的Frida-Android-unpack    https://github.com/xiaokanghub/Frida-Android-unpack


对于dstmath和xiaokanghub的做了一些改进吧,适配了各Android版本,我自己测试过Android4.4 Android5.1 Android6.0 Android7.1


Frida对于Android4.4系统的兼容性不好,经常会导致系统重启,我用的是frida-server-12.4.5版本,这个版本还算稳定;这个工具对于Android4.4的脱壳不是很有效,我测试过某60就不能脱,只能dump出odex文件,某加密可以脱壳,其他的大家去测试下吧


使用方法

命令行执行: frida -U -f com.xxx.xxx -l dexDump.js --no-pause

脱出的Dex文件在 /data/data/应用包名/目录下


代码 

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


其他

其实我之前脱壳是通过修改系统源码的,修改 art/runtime/dex_file.cc的 DexFile构造函数,这个比较类似吧,不用修改源码了

修改源码Dump: https://www.freebuf.com/articles/terminal/166307.html


Android4.4也可以通过修改dalvik/libdex/DexFile.cpp的dexFileParse函数或者dalvik/vm/DvmDex.cpp的dvmDexFileOpenPartial函数,增加dump代码就能把Dex文件dump出来了



[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

最后于 2020-3-20 15:44 被guoqiangck编辑 ,原因:
收藏
免费 6
支持
分享
最新回复 (31)
雪    币: 11716
活跃值: (133)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
支持
2019-6-12 19:06
0
雪    币: 6575
活跃值: (2743)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
Dump出每个类的Inscode然后Patch到脱出Dex文件,有支持这个?
2019-6-14 10:11
0
雪    币: 963
活跃值: (85)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
xianhuimin Dump出每个类的Inscode然后Patch到脱出Dex文件,有支持这个?
没有哦,这个只是支持dump dex文件,那个需要另外处理
2019-6-14 10:16
0
雪    币: 4831
活跃值: (479)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
perfect
2019-6-14 23:41
0
雪    币: 124
活跃值: (364)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
支持下
2019-6-15 09:55
0
雪    币: 396
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
dump出的结果拖到jeb里面就可以看了吗
2019-6-17 09:28
0
雪    币: 963
活跃值: (85)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
deluser dump出的结果拖到jeb里面就可以看了吗
可以的,dump出来的dex文件,可以拖到jeb里面或者jadx里面看到代码的
2019-6-17 09:36
0
雪    币: 124
活跃值: (364)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
没法还原抽进native层的代码 
2019-6-17 15:44
0
雪    币: 963
活跃值: (85)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
sogohere 没法还原抽进native层的代码
是的,只能dump内存中的dex文件,像Java2c,类抽取这种都是没办法的
2019-6-17 18:51
0
雪    币: 251
活跃值: (468)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
厉害
2019-6-20 08:58
0
雪    币: 319
活跃值: (231)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
 360免费版测试脱壳成功,乐固测试方法里面没有内容全是nop,不知道是不是我使用方式有问题
2019-7-5 03:03
0
雪    币: 963
活跃值: (85)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
yshell 360免费版测试脱壳成功,乐固测试方法里面没有内容全是nop,不知道是不是我使用方式有问题
这个是类抽取加固了,要在apk运行时dump出inscode然后patch到你dump出的dex文件里面,这样就不会nop了,运行了哪些类才能dump出哪些类的inscode
2019-7-5 09:33
0
雪    币: 244
活跃值: (25)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
14
支持
2019-7-5 11:12
0
雪    币: 13
活跃值: (35)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
guoqiangck 这个是类抽取加固了,要在apk运行时dump出inscode然后patch到你dump出的dex文件里面,这样就不会nop了,运行了哪些类才能dump出哪些类的inscode
"要在apk运行时dump出inscode"
这个怎么弄呀?
2019-8-23 16:48
0
雪    币: 3271
活跃值: (2884)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
16
dump出code_item然后修复?
2019-8-31 23:03
0
雪    币: 963
活跃值: (85)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
nottoobad "要在apk运行时dump出inscode" 这个怎么弄呀?
Android4.4 Dalvik模式在dalvik/vm/oo/Resolve.cpp中dvmResolveClass函数可以dump出inscode
最后于 2019-9-4 11:29 被guoqiangck编辑 ,原因:
2019-9-2 11:25
0
雪    币: 963
活跃值: (85)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
xhyeax dump出code_item然后修复?
dump出inscode还要自己patch到脱出的dex中
2019-9-2 11:26
0
雪    币: 3271
活跃值: (2884)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
19
guoqiangck Android4.4 ART模式在dalvik/vm/oo/Resolve.cpp中dvmResolveClass函数可以dump出inscode
这个只能通过修改系统源码来实现吗?
2019-9-3 18:48
0
雪    币: 963
活跃值: (85)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
xhyeax 这个只能通过修改系统源码来实现吗?
修改系统源码比较方便吧,因为数据是按结构体封装的,hook的话就C或C++支持好一点吧,其他的语言得自己按照内存布局取数据
2019-9-4 11:23
0
雪    币: 963
活跃值: (85)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
guoqiangck 修改系统源码比较方便吧,因为数据是按结构体封装的,hook的话就C或C++支持好一点吧,其他的语言得自己按照内存布局取数据
我说的这个得运行到的代码才能dump,没运行过的不行,你看下这个大佬的方案吧,主动调用的脱壳方案,https://bbs.pediy.com/thread-252630.htm
2019-9-4 11:28
0
雪    币: 8
活跃值: (38)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
22
太强了
2019-9-4 14:13
0
雪    币: 6257
活跃值: (1177)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
出个视频就完美了
2019-9-17 09:43
0
雪    币: 15
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
最新乐固壳好像只能脱出壳的代码,是改变了策略吗
2019-9-19 14:00
0
雪    币: 963
活跃值: (85)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
TonyLMY 最新乐固壳好像只能脱出壳的代码,是改变了策略吗
有可能,我没有试过乐固的加固,你能发个样本吗
2019-9-20 13:45
0
游客
登录 | 注册 方可回帖
返回
//