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

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

2013-5-15 22:02
37901
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直播授课

上传的附件:
收藏
点赞3
打赏
分享
最新回复 (49)
雪    币: 114
活跃值: (135)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qqlinhai 2013-5-15 22:19
2
0
此贴必火,谢谢分享。
雪    币: 350
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
大小人物 2013-5-15 22:23
3
0
膜拜下,这个很牛。
雪    币: 1136
活跃值: (668)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
heihu 2013-5-15 22:35
4
0
想看脱壳过程,还原细节
雪    币: 257
活跃值: (67)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
AioliaSky 1 2013-5-15 22:47
5
0
谢谢分享,顶一个,希望lz能介绍下脱壳细节,咱小菜对这个可是一窍不通啊。。。
雪    币: 228
活跃值: (115)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
exediy 1 2013-5-15 22:49
6
0
都是高手,,,在VM里混的
雪    币: 51
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
HuErr 2013-5-15 23:15
7
0
驱动脱壳一直没接触过。学习了。
雪    币: 327
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
cheryl 2013-5-16 01:02
8
0
脱壳怎么脱   有咩有步骤啊
雪    币: 3624
活跃值: (3778)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
caolinkai 2013-5-16 02:08
9
0
牛人好多啊 。。。。。。。。。。。。
雪    币: 20
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
冬阳春雪 2013-5-16 02:12
10
0
天书夜读啊
雪    币: 1675
活跃值: (594)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
djxh 2013-5-16 06:14
11
0
牛B,膜拜。。。
雪    币: 19
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
Aipsa 2013-5-16 07:21
12
0
爆了菊花。
雪    币: 434
活跃值: (73)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zyicai 2013-5-16 08:28
13
0
楼主牛,膜拜一下
雪    币: 114
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
dahwa 2013-5-16 08:35
14
0
确实牛逼,觉得再介绍细点该加精的···
雪    币: 6289
活跃值: (3357)
能力值: ( LV5,RANK:69 )
在线值:
发帖
回帖
粉丝
小菜鸟一 2013-5-16 09:39
15
0
此贴必火  膜拜
雪    币: 492
活跃值: (41)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
hacklang 1 2013-5-16 09:54
16
0
好牛逼的unvm
雪    币: 1891
活跃值: (1740)
能力值: (RANK:400 )
在线值:
发帖
回帖
粉丝
莫灰灰 9 2013-5-16 09:59
17
0
不懂VM的前来膜拜。
雪    币: 576
活跃值: (1148)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
hkfans 3 2013-5-16 11:28
18
0
太吊了!
雪    币: 73
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kingcomer 2013-5-16 12:58
19
0
楼主油菜花,赞一个~
雪    币: 219
活跃值: (738)
能力值: (RANK:290 )
在线值:
发帖
回帖
粉丝
viphack 4 2013-5-16 13:56
20
0
拿走了 ···
雪    币: 1021
活跃值: (225)
能力值: ( LV12,RANK:310 )
在线值:
发帖
回帖
粉丝
yuansunxue 6 2013-5-16 14:18
21
0
怎么才优秀 应该精华
雪    币: 794
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
Winker 8 2013-5-16 14:53
22
0
sod的精华都在ring3里
雪    币: 306
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
baohongyu 2013-5-16 15:33
23
0
收下
顺顶
雪    币: 6991
活跃值: (1217)
能力值: ( LV11,RANK:180 )
在线值:
发帖
回帖
粉丝
JoenChen 4 2013-5-16 15:42
24
0
海风月影也被爆菊花了
雪    币: 39
活跃值: (139)
能力值: ( LV3,RANK:38 )
在线值:
发帖
回帖
粉丝
cuannuo 2013-5-16 18:59
25
0
脱驱动挺有意思的,最好把Xuetr给托了
游客
登录 | 注册 方可回帖
返回