首页
论坛
课程
招聘
[原创] 手动分析VMP加密的x64驱动导入表
2019-1-4 15:51 7706

[原创] 手动分析VMP加密的x64驱动导入表

2019-1-4 15:51
7706


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的地址,修复导入表

第五届安全开发者峰会(SDC 2021)10月23日上海召开!限时2.5折门票(含自助午餐1份)

最后于 2019-1-4 15:53 被hzqst编辑 ,原因:
收藏
点赞3
打赏
分享
最新回复 (22)
雪    币: 342
活跃值: 活跃值 (631)
能力值: ( LV5,RANK:68 )
在线值:
发帖
回帖
粉丝
万剑归宗 活跃值 1 2019-1-4 16:15
2
1
插眼
雪    币: 268
活跃值: 活跃值 (736)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
sxpp 活跃值 1 2019-1-4 16:15
3
1
666666
雪    币: 6272
活跃值: 活跃值 (362)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
二娃 活跃值 2019-1-4 16:18
4
1
表哥牛逼
雪    币:
活跃值: 活跃值 (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
亲嘴 活跃值 2019-1-4 16:19
5
1
前排
雪    币: 2424
活跃值: 活跃值 (220)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
FANTASYING 活跃值 2019-1-4 16:35
6
1
表哥666
雪    币: 742
活跃值: 活跃值 (631)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yllen 活跃值 2019-1-4 16:38
7
1
围观
雪    币: 1504
活跃值: 活跃值 (648)
能力值: ( LV3,RANK:35 )
在线值:
发帖
回帖
粉丝
StriveXjun 活跃值 2019-1-4 18:29
8
1
难度在于VM上,驱动加个VM就基本上 99.9%人GG
雪    币: 199
活跃值: 活跃值 (351)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qdjytony 活跃值 2019-1-4 23:00
9
1
表哥666
雪    币: 10356
活跃值: 活跃值 (606)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
固件安全 活跃值 2019-1-6 09:06
10
1
给力,表哥nb
雪    币: 117
活跃值: 活跃值 (131)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
渗透 活跃值 2019-1-6 12:19
11
1
雪    币: 388
活跃值: 活跃值 (343)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
布丁先生 活跃值 2019-1-6 21:48
12
1
mark
雪    币: 4047
活跃值: 活跃值 (586)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wanttobeno 活跃值 2019-1-7 10:35
13
1
请收下我的膝盖!
雪    币: 14990
活跃值: 活跃值 (21980)
能力值: (RANK:75 )
在线值:
发帖
回帖
粉丝
Editor 活跃值 2019-1-7 13:31
14
0
感谢分享!
雪    币: 388
活跃值: 活跃值 (408)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
wowocock 活跃值 1 2019-1-7 16:10
15
0
需要内存DUMP来处理,没法直接从文件直接恢复导入表。
雪    币: 62
活跃值: 活跃值 (166)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
uvbs 活跃值 2019-1-7 17:13
16
0
楼主 模拟器验证  这个能不能详细讲一下
雪    币: 545
活跃值: 活跃值 (268)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
hkfans 活跃值 3 2019-1-7 20:57
17
0
没有用调试器?就直接IDA干?
雪    币: 57
活跃值: 活跃值 (880)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
实都 活跃值 2019-1-8 11:30
18
0
厉害啊
雪    币: 427
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
名侦探柯阿 活跃值 2019-1-8 14:47
19
0
强大的呀,  跟着大佬步伐
雪    币: 10482
活跃值: 活跃值 (4194)
能力值: ( LV9,RANK:270 )
在线值:
发帖
回帖
粉丝
hzqst 活跃值 3 2019-1-8 18:01
20
0
uvbs 楼主 模拟器验证 这个能不能详细讲一下
我在之前的帖子里发过
雪    币: 3590
活跃值: 活跃值 (387)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
严启真 活跃值 2019-1-8 18:23
21
0
楼主太厉害了,受教了…
雪    币: 92
活跃值: 活跃值 (380)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hixhi 活跃值 2019-1-9 10:43
22
0
膜拜。VMP出来这么多年了,都不知道怎么下手的飘过。
雪    币: 710
活跃值: 活跃值 (214)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mydvdf 活跃值 2019-3-28 19:54
23
0
66666666666666666666666
游客
登录 | 注册 方可回帖
返回