首页
论坛
课程
招聘
雪    币: 956
活跃值: 活跃值 (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝

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

2019-6-12 15:14 16157

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

2019-6-12 15:14
16157

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出来了




[看雪官方培训]《安卓高级研修班(网课)》9月班开始招生!挑战极限、工资翻倍!

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