首页
社区
课程
招聘
[原创]fengyue.sys脱壳及vm还原
发表于: 2013-5-15 22:02 39225

[原创]fengyue.sys脱壳及vm还原

2013-5-15 22:02
39225

fengyue.sys是Strong OD的驱动就不多做介绍。从0.4.8.892中抠出。
因无聊尝试脱其壳,从ep看使用了虚拟机,到了oep后,发现多处函数及oep皆被vm了。
不过该vm是十分标准的堆栈虚拟机,引擎代码和虚拟指令代码可读性极高。
x86代码也只是简单的转换为vm代码,所以觉得还原起来难度不大,
不过vm毕竟是vm,也需要蛮多时间,弄了几天之后没兴趣了,不过也还原得差不多了,
现将代码发出来,有兴趣的可以继续玩玩

首先简述下r3下脱驱动壳:
要在r3下利用OD脱驱动壳,只要写个loader,提供一些平台支持就行了
1) 在内核下,通过遍历DriverObject->DriverSection(LDR_DATA_TABLE_ENTRY)->InLoadOrderLinks获得ntoskrnl,hal等等模块。所以需要模拟此list。
2) 接管ExAllocatePoolWithTag和ExFreePoolWithTag,对应替换为VirtualAlloc与VirtualFree
3) 如需要,可连MmGetSystemRoutineAddress也接管了。
4) 构造DRIVER_OBJECT,调用DriverEntry。

也一起上传了loadsys代码。
OD载入后,bp VirtualFree,然后搜索vm_exit,断住返回即到oep

以下为vm还原的思路。
由于x86并未经过拆分,以代码表示
add eax,ebx  ->   mov reg_a, eax            -> mov ryy|1, ryy|3
                  mov reg_b, ebx               mov ryy|2, ryy
                  [popfd reg_c]                calc, ryy|1, ryy|2 (之所以定义为calc是因为还有其他计算操作,比如xor等等)
                  add reg_a, reg_b             mov ryy|3, ryy|1
                  mov eax, reg_a
利用此套规则便可线性的将vm代码块还原成x86代码了。
由于操作数还有rm和sib等等操作,所以涉及到ryy的推导。
由于没有使用语法树,所以依然线性的匹配规则进行子表达式合并。
1)分析vm handler table,将vm code建立成链表。
2)合并子表达式
3)生成x86汇编语句
4)按照skypatch生成对应格式文件

附件带有还原过后的sys,并没有处理更多,请见谅,仅供IDA参考


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

上传的附件:
收藏
免费 5
支持
分享
最新回复 (49)
雪    币: 114
活跃值: (180)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
此贴必火,谢谢分享。
2013-5-15 22:19
0
雪    币: 350
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
膜拜下,这个很牛。
2013-5-15 22:23
0
雪    币: 1136
活跃值: (683)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
想看脱壳过程,还原细节
2013-5-15 22:35
0
雪    币: 257
活跃值: (67)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
谢谢分享,顶一个,希望lz能介绍下脱壳细节,咱小菜对这个可是一窍不通啊。。。
2013-5-15 22:47
0
雪    币: 228
活跃值: (115)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
6
都是高手,,,在VM里混的
2013-5-15 22:49
0
雪    币: 51
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
驱动脱壳一直没接触过。学习了。
2013-5-15 23:15
0
雪    币: 327
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
脱壳怎么脱   有咩有步骤啊
2013-5-16 01:02
0
雪    币: 3836
活跃值: (4142)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
牛人好多啊 。。。。。。。。。。。。
2013-5-16 02:08
0
雪    币: 20
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
天书夜读啊
2013-5-16 02:12
0
雪    币: 1685
活跃值: (704)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
牛B,膜拜。。。
2013-5-16 06:14
0
雪    币: 19
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
12
爆了菊花。
2013-5-16 07:21
0
雪    币: 437
活跃值: (78)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
楼主牛,膜拜一下
2013-5-16 08:28
0
雪    币: 114
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
确实牛逼,觉得再介绍细点该加精的···
2013-5-16 08:35
0
雪    币: 1131
活跃值: (4202)
能力值: ( LV5,RANK:69 )
在线值:
发帖
回帖
粉丝
15
此贴必火  膜拜
2013-5-16 09:39
0
雪    币: 492
活跃值: (51)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
16
好牛逼的unvm
2013-5-16 09:54
0
雪    币: 2308
活跃值: (2200)
能力值: (RANK:400 )
在线值:
发帖
回帖
粉丝
17
不懂VM的前来膜拜。
2013-5-16 09:59
0
雪    币: 576
活跃值: (1163)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
18
太吊了!
2013-5-16 11:28
0
雪    币: 73
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
楼主油菜花,赞一个~
2013-5-16 12:58
0
雪    币: 219
活跃值: (783)
能力值: (RANK:290 )
在线值:
发帖
回帖
粉丝
20
拿走了 ···
2013-5-16 13:56
0
雪    币: 1024
活跃值: (240)
能力值: ( LV12,RANK:310 )
在线值:
发帖
回帖
粉丝
21
怎么才优秀 应该精华
2013-5-16 14:18
0
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
22
sod的精华都在ring3里
2013-5-16 14:53
0
雪    币: 306
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
收下
顺顶
2013-5-16 15:33
0
雪    币: 6976
活跃值: (1477)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
24
海风月影也被爆菊花了
2013-5-16 15:42
0
雪    币: 39
活跃值: (169)
能力值: ( LV3,RANK:38 )
在线值:
发帖
回帖
粉丝
25
脱驱动挺有意思的,最好把Xuetr给托了
2013-5-16 18:59
0
游客
登录 | 注册 方可回帖
返回
//