首页
社区
课程
招聘
[原创]一个dex脱壳脚本
发表于: 2017-1-3 15:06 21076

[原创]一个dex脱壳脚本

2017-1-3 15:06
21076

一个ida脚本,配合kill方法,可以实现脱绝大部分运行于dalvik上的dex壳。至于具体用法,自行领悟吧。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (42)
雪    币: 93
活跃值: (136)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
前排mark 大神
2017-1-3 15:36
0
雪    币: 94
活跃值: (2372)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
Q神牛逼!
2017-1-3 15:47
0
雪    币: 53
活跃值: (106)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
大神转做什么啦?
2017-1-3 15:51
0
雪    币: 457
活跃值: (328)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
前排mark 大神
2017-1-3 16:20
0
雪    币: 0
活跃值: (878)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
膜一波 大神
2017-1-3 16:52
0
雪    币: 246
活跃值: (264)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
参观留名
2017-1-3 16:56
0
雪    币: 10795
活跃值: (3262)
能力值: (RANK:520 )
在线值:
发帖
回帖
粉丝
8
高手出招
2017-1-3 18:04
0
雪    币: 144
活跃值: (38)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
恩,不错的小脚本
2017-1-3 18:53
0
雪    币: 210
活跃值: (626)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
10
牛逼的人,哈哈
2017-1-3 22:48
0
雪    币: 41
活跃值: (823)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
感谢分享哦
2017-1-4 08:32
0
雪    币: 67
活跃值: (53)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
12
看不出比DEX Hunter靠谱在何处,可以简单解释一下吗。Dex Hunter在虚拟机里面改写代码,起码不用担心反调试反篡改等手段。并可以改造为自己枚举来强迫遍历所有类都实例化了。至于防止fread和fopen等注入更是简单。Dex Hunter主要缺点就是要编译个虚拟机,我想这个难度对做脱壳的同学不算啥吧。对学习脱壳的同学来说Dex Hunter算是打开了一扇大门。当然对做加固的同学来说就是个坑了。
2017-1-4 09:47
0
雪    币: 243
活跃值: (247)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
都太高端!
2017-1-4 12:29
0
雪    币: 233
活跃值: (285)
能力值: ( LV12,RANK:270 )
在线值:
发帖
回帖
粉丝
14
你要搞清楚两种方案的区别,然后考虑怎么做防御,才有可能看出哪里靠谱来。
例如,dexhunter公布出来了,加固程序简单更新一下,就能使其无效。而这份脚本里的方法,你可以想想如何才能防御。
2017-1-5 10:49
0
雪    币: 35
活跃值: (75)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
15
对于那些执行函数前恢复insns,完成后擦除insns的某些加固似乎没用呢?xxxhunter至少解决了这个问题
2017-1-5 11:46
0
雪    币: 233
活跃值: (285)
能力值: ( LV12,RANK:270 )
在线值:
发帖
回帖
粉丝
16
很不幸,对于内存中不存在完整dex的情况,没有完善的方案可以自动化解决。(有种dalvik指令记录+自动化代码触发的方案,然而问题太多)
所以,xxxhunter真的解决了这个问题么?同样的加固思路,实现方式变换一下,还有效吗?
2017-1-5 15:41
0
雪    币: 148
活跃值: (278)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
测试了三个加固,对爱加密,腾讯,360都毫无卵用,gDvm.userDexFiles里面的dex还是只有壳的dex
2017-1-5 17:55
0
雪    币: 233
活跃值: (285)
能力值: ( LV12,RANK:270 )
在线值:
发帖
回帖
粉丝
18
换个时间点dump呢?
或者如果你确定你知道正确的dump时机,可以把apk发我。
2017-1-5 18:43
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
好高端的样子!
2017-1-5 23:00
0
雪    币: 148
活跃值: (278)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
我是运行后,ida附加dump的,壳的话说官网加的免费版
2017-1-6 09:09
0
雪    币: 3366
活跃值: (1343)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
21
学习了~~ 膜拜
2017-1-7 14:08
0
雪    币: 3
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
威武强大的ida大神啊,请收下我的膝盖!!!!!!太爱你了这么好的东西分享出来
2017-1-11 18:12
0
雪    币: 3
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
按照原来的用当然没用,要修改才行,只能说你不懂原理不会用完毕
2017-1-11 18:14
0
雪    币: 233
活跃值: (285)
能力值: ( LV12,RANK:270 )
在线值:
发帖
回帖
粉丝
24
总结一下吧。
1. ida脚本必须在原始的dex加载之后运行。一般需要配合kill“干掉”反调试。
2. 里面都是硬编码的数字,我用的是android-4.4.4_r2的系统。其他系统可能需要调整
3. 这份脚本是帮别人写的,脱了目标apk成功就没测试别的。然后随手删掉部分敏感内容后直接发出来了。
4. 其实就是一个原理,想方设法找到dvmdex
5. 脚本是手工的时候常用操作总结,用起来十分方便。而“靠谱”指的是dvmdex
6. 目前dump_all_dex是基于gDvm.userDexFiles脱的,这点可能被anti,但代价比较大,一般免费壳很少会处理。如果处理了,利用find_class。。。()
7. 脚本(手工静态)脱壳一般只适用于内存中存在完整dex的情况。如果是动态恢复的dex,建议换其他方法。(当然,脚本也可以动态下断点,动态dump,前提是你愿意写代码,并且完全搞定了反调试)。
8. 理论上来讲,壳是没有任何意义的,尤其是对于Android这种复杂的环境,只是打时间差和信息差而已。所以任何工具都不可能通用,但只要肯花时间分析清楚壳的信息,就能做到心中无壳~
2017-1-11 18:55
0
雪    币: 148
活跃值: (278)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
有道理,感谢回复
2017-1-12 09:20
0
游客
登录 | 注册 方可回帖
返回
//