首页
论坛
课程
招聘
雪    币: 8600
活跃值: 活跃值 (535)
能力值: ( LV5,RANK:250 )
在线值:
发帖
回帖
粉丝

[虚拟机保护] [原创] 手动分析VMP加密的x64驱动导入表

2019-1-4 15:51 5801

[虚拟机保护] [原创] 手动分析VMP加密的x64驱动导入表

2019-1-4 15:51
5801


VMP保护的导入表 会把FF 25 offset (call qword ptr[rip+offset])修改为E8 call





跟进去可以看到先保存了rdi,后面rdi会用于堆栈平衡以及修正返回地址



然后返回地址也就是+BE081  int  3那一行的地址被保存到rdi








rdi被加一之后又填充回返回地址,也就是让返回地址跳过int 3指向正确的BE082 test eax,  eax那一行






这几步相当于解密导入函数地址,从[imagebase+37DF6+14B606] + 3DDC1A68处取出函数地址放入[rsp]中

我们用模拟器验证一下
 [imagebase+37DF6+14B606] + 3DDC1A68 确实= fffff800007165c8=RtlGetVersion
uint64_t RtlGetVersion_import = 0;
	uc_mem_read(ctx.m_uc, ctx.m_ImageBase + 0x37DF6 + 0x14B606, &RtlGetVersion_import, 8);
	RtlGetVersion_import += 0x3DDC1A68;
	std::wstring RtlGetVersion_importfrom;
	FakeAPI_t *RtlGetVersion_importapi = NULL;
	if (ctx.FindAPIByAddress(RtlGetVersion_import, RtlGetVersion_importfrom, &RtlGetVersion_importapi))
		*outs << "[ ctx.m_ImageBase + 0x37DF6 + 0x14B606]+0x3DDC1A68 = " << std::hex << RtlGetVersion_import << "name: " << RtlGetVersion_importapi->ProcedureName << "\n";





最后一步retn直接飞向[rsp]也就是刚才计算出的API地址并让最开始push rdi 减少的rsp恢复

按照这个思路稍加修改甚至可以实现一键脱vmp壳,只要用脚本定位所有api call的地址,修复导入表


[赠书活动] 《云计算安全》和《云存储安全实践》上线!老师留下通讯地址,即可获得赠书一套!送100套,送完为止!

最后于 2019-1-4 15:53 被hzqst编辑 ,原因:
最新回复 (22)
雪    币: 6925
活跃值: 活跃值 (46)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
万剑归宗 活跃值 1 2019-1-4 16:15
2
1
插眼
雪    币: 337
活跃值: 活跃值 (27)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
sxpp 活跃值 1 2019-1-4 16:15
3
1
666666
雪    币: 6307
活跃值: 活跃值 (42)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
二娃 活跃值 2019-1-4 16:18
4
1
表哥牛逼
雪    币: 146
活跃值: 活跃值 (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
亲嘴 活跃值 2019-1-4 16:19
5
1
前排
雪    币: 2309
活跃值: 活跃值 (34)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
FANTASYING 活跃值 2019-1-4 16:35
6
1
表哥666
雪    币: 399
活跃值: 活跃值 (33)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yllen 活跃值 2019-1-4 16:38
7
1
围观
雪    币: 1813
活跃值: 活跃值 (56)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
StriveXjun 活跃值 2019-1-4 18:29
8
1
难度在于VM上,驱动加个VM就基本上 99.9%人GG
雪    币: 393
活跃值: 活跃值 (19)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qdjytony 活跃值 2019-1-4 23:00
9
1
表哥666
雪    币: 8308
活跃值: 活跃值 (36)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
固件安全 活跃值 2019-1-6 09:06
10
1
给力,表哥nb
雪    币: 317
活跃值: 活跃值 (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
渗透 活跃值 2019-1-6 12:19
11
1
雪    币: 696
活跃值: 活跃值 (34)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
布丁先生 活跃值 2019-1-6 21:48
12
1
mark
雪    币: 3149
活跃值: 活跃值 (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wanttobeno 活跃值 2019-1-7 10:35
13
1
请收下我的膝盖!
雪    币: 4717
活跃值: 活跃值 (1447)
能力值: (RANK:40 )
在线值:
发帖
回帖
粉丝
Editor 活跃值 2019-1-7 13:31
14
0
感谢分享!
雪    币: 378
活跃值: 活跃值 (31)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
wowocock 活跃值 1 2019-1-7 16:10
15
0
需要内存DUMP来处理,没法直接从文件直接恢复导入表。
雪    币: 80
活跃值: 活跃值 (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
uvbs 活跃值 2019-1-7 17:13
16
0
楼主 模拟器验证  这个能不能详细讲一下
雪    币: 580
活跃值: 活跃值 (19)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
hkfans 活跃值 3 2019-1-7 20:57
17
0
没有用调试器?就直接IDA干?
雪    币: 72
活跃值: 活跃值 (52)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
实都 活跃值 2019-1-8 11:30
18
0
厉害啊
雪    币: 427
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
名侦探柯阿 活跃值 2019-1-8 14:47
19
0
强大的呀,  跟着大佬步伐
雪    币: 8600
活跃值: 活跃值 (535)
能力值: ( LV5,RANK:250 )
在线值:
发帖
回帖
粉丝
hzqst 活跃值 3 2019-1-8 18:01
20
0
uvbs 楼主 模拟器验证 这个能不能详细讲一下
我在之前的帖子里发过
雪    币: 3582
活跃值: 活跃值 (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
严启真 活跃值 2019-1-8 18:23
21
0
楼主太厉害了,受教了…
雪    币: 76
活跃值: 活跃值 (39)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kongfubull 活跃值 2019-1-9 10:43
22
0
膜拜。VMP出来这么多年了,都不知道怎么下手的飘过。
雪    币: 1538
活跃值: 活跃值 (43)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mydvdf 活跃值 2019-3-28 19:54
23
0
66666666666666666666666
游客
登录 | 注册 方可回帖
返回