首页
社区
课程
招聘
[分享]自己写的简单脱壳工具
发表于: 2016-10-19 18:25 23038

[分享]自己写的简单脱壳工具

2016-10-19 18:25
23038
这大半年在测试移动客户端时遇到了不少壳,研究之余写了几个小工具(各有适用场景),都已经发到github上了,在此分享下。这几个工具都是内存搜索然后dump,虽然出来的dex不一定都能重打包,但是从分析java代码的角度来说基本够用了,请大牛们轻喷。

drizzleDumper 最开始是照着android-unpacker写的,后面两个都是调用改版的drizzleDumper实现的Dump,然后做了一些其他处理,基本满足反编译出大部分java代码,欢迎大家一起研究测试,don't be evil

工具地址:
drizzleDumper https://github.com/DrizzleRisk/drizzleDumper
TUnpacker https://github.com/DrizzleRisk/TUnpacker
BUnpacker https://github.com/DrizzleRisk/BUnpacker

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

收藏
免费 3
支持
分享
最新回复 (45)
雪    币: 94
活跃值: (2197)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
先mark再看,多谢分享!
2016-10-19 18:46
0
雪    币: 1039
活跃值: (355)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢分享
2016-10-20 07:51
0
雪    币: 348
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
先mark再看,多谢分享!
2016-10-20 08:20
0
雪    币: 0
活跃值: (60)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
先mark再看,多谢分享!
2016-10-20 08:59
0
雪    币: 60
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
楼主后面两个起的别有用心啊
2016-10-20 09:03
0
雪    币: 46
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
没有啊 ,随便起的
2016-10-20 09:43
0
雪    币: 17
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
吃瓜群众前来学习
2016-10-20 09:59
0
雪    币: 18
活跃值: (561)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
既然没开源,最好就不要放github
2016-10-20 10:11
0
雪    币: 93
活跃值: (136)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
mark
2016-10-20 11:30
0
雪    币: 77
活跃值: (95)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
后两个是要配置Python环境吧
2016-10-20 13:55
0
雪    币: 46
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
都是开源的呀,唯一没有公布源码的部分只有后面两个py里调用的NDK程序,但这NDK程序也是第一个drizzleDumper代码改进而来的,主要改的是内存定位和特征,区别不大。
2016-10-20 14:11
0
雪    币: 46
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
13
嗯 是,需要python和java环境,并且因为是动态脱壳,所以需要连接设备或虚拟机。
2016-10-20 14:12
0
雪    币: 62
活跃值: (27)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
支持dalao
2016-10-20 14:30
0
雪    币: 77
活跃值: (95)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
后两个可以用第一个那种方法来脱吗?
2016-10-20 15:13
0
雪    币: 46
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
16
原理上可以,但得根据情况修改第一个的代码
2016-10-20 15:44
0
雪    币: 44
活跃值: (164)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
B和T两家脱出来的都是需要修复的,你这个有没有做修复?只是内存dump么?
2016-10-21 14:48
0
雪    币: 103
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
python 用什么版本?
总是在获得APK信息时XML有问题

[*] Get package info
Traceback (most recent call last):
  File "C:\BUnpacker-master\bunpacker.py", line 83, in <module>
    CheckEnv()
  File "C:\BUnpacker-master\bunpacker.py", line 44, in CheckEnv
    mfest = minidom.parseString(content)
  File "C:\Python27\lib\xml\dom\minidom.py", line 1928, in parseString
    return expatbuilder.parseString(string)
  File "C:\Python27\lib\xml\dom\expatbuilder.py", line 940, in parseString
    return builder.parseString(string)
  File "C:\Python27\lib\xml\dom\expatbuilder.py", line 223, in parseString
    parser.Parse(string, True)
xml.parsers.expat.ExpatError: no element found: line 1, column 0
2016-10-21 16:20
0
雪    币: 46
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
19
程序跑出来几乎是完整的,可以试一下
2016-10-22 10:46
0
雪    币: 46
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
20
27,这个最好根据情况定位一下问题了。读取xml的目的是为了获取包名和StartActivity。
2016-10-22 10:50
0
雪    币: 341
活跃值: (138)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
21
谢谢开源分享
2016-10-22 11:57
0
雪    币: 9
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
这是什么情况无限循环了,脱不了,例子是http://bbs.pediy.com/showthread.php?t=213092这个贴里的

meminfo: /dev/ashmem/dalvik-large ,len: 20480 ,readlen: 20480, start: a2959000
meminfo: /dev/kgsl-3d0 ,len: 69632 ,readlen: 65536, start: a295e000
meminfo: /data/data/com.alex.lookwifipassword/.jiagu/classes.oat ,len: 12288 ,re
adlen: 12288, start: a296f000
meminfo: /data/data/com.alex.lookwifipassword/.jiagu/classes.oat ,len: 2691072 ,
readlen: 2691072, start: a2972000
meminfo: /data/data/com.alex.lookwifipassword/.jiagu/classes.oat ,len: 925696 ,r
eadlen: 925696, start: a2c03000
meminfo: /data/data/com.alex.lookwifipassword/.jiagu/classes.oat ,len: 3698688 ,
readlen: 3698688, start: a2ce5000
meminfo:  ,len: 2691072 ,readlen: 2691072, start: a306f000
[+] find dex, len : 2691072 , info :
[+] This dex's fileSize: 2687496
[+] dex dump into /data/local/tmp/com.alex.lookwifipassword_dumped_2286.dex
meminfo: [anon:libc_malloc] ,len: 3145728 ,readlen: 3145728, start: a3300000
meminfo: /dev/ashmem/dalvik-large ,len: 20480 ,readlen: 20480, start: a3604000
meminfo: /system/vendor/lib/egl/eglsubAndroid.so ,len: 40960 ,readlen: 40960, st
art: a360d000
meminfo: /dev/ashmem/dalvik-large ,len: 40960 ,readlen: 40960, start: a361d000
meminfo: /dev/ashmem/dalvik-large ,len: 24576 ,readlen: 24576, start: a3627000
meminfo: /system/lib/libqservice.so ,len: 28672 ,readlen: 28672, start: a362d000

meminfo:  ,len: 323584 ,readlen: 323584, start: a3638000
meminfo:  ,len: 40960 ,readlen: 40960, start: a3687000
meminfo: [stack:9912] ,len: 1040384 ,readlen: 1040384, start: a3692000
meminfo: [stack:9911] ,len: 1040384 ,readlen: 1040384, start: a3791000
meminfo: [stack:9910] ,len: 1036288 ,readlen: 1036288, start: a3892000
meminfo: /dev/ashmem/dalvik-allocspace ,len: 8388608 ,readlen: 8388608, start: a
398f000
meminfo: /dev/ashmem/dalvik-allocspace ,len: 8388608 ,readlen: 8388608, start: a
418f000
meminfo: /system/lib/librs_jni.so ,len: 28672 ,readlen: 28672, start: a498f000
meminfo: /system/lib/libvorbisidec.so ,len: 98304 ,readlen: 98304, start: a49980
00
meminfo: /system/lib/libstagefright.so ,len: 1323008 ,readlen: 1323008, start: a
49b2000
meminfo: /system/lib/libstagefright.so ,len: 36864 ,readlen: 36864, start: a4af6
000
meminfo: [anon:libc_malloc] ,len: 1048576 ,readlen: 1048576, start: a4b00000
meminfo: /system/lib/libaudioeffect_jni.so ,len: 16384 ,readlen: 16384, start: a
4c04000
2016-10-22 18:36
0
雪    币: 46
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
23
你这是ART模式? 我只在daivik模式下测试过。
2016-10-24 10:01
0
雪    币: 29
活跃值: (97)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
谢谢分享 先mark一下
2016-10-24 10:12
0
雪    币: 102
活跃值: (1845)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
25
谢谢分享 先mark一下
2016-10-24 10:58
0
游客
登录 | 注册 方可回帖
返回
//