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

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

2019-1-4 15:51
12191


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

[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

最后于 2019-1-4 15:53 被hzqst编辑 ,原因:
收藏
点赞4
打赏
分享
最新回复 (23)
雪    币: 914
活跃值: (2188)
能力值: ( LV5,RANK:68 )
在线值:
发帖
回帖
粉丝
万剑归宗 1 2019-1-4 16:15
2
1
插眼
雪    币: 231
活跃值: (2631)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
sxpp 1 2019-1-4 16:15
3
1
666666
雪    币: 6314
活跃值: (824)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
二娃 2019-1-4 16:18
4
1
表哥牛逼
雪    币:
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
亲嘴 2019-1-4 16:19
5
1
前排
雪    币: 2435
活跃值: (525)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
FANTASYING 2019-1-4 16:35
6
1
表哥666
雪    币: 1257
活跃值: (1424)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yllen 2019-1-4 16:38
7
1
围观
雪    币: 1038
活跃值: (1216)
能力值: ( LV3,RANK:35 )
在线值:
发帖
回帖
粉丝
StriveXjun 2019-1-4 18:29
8
1
难度在于VM上,驱动加个VM就基本上 99.9%人GG
雪    币: 659
活跃值: (956)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qdjytony 2019-1-4 23:00
9
1
表哥666
雪    币: 10704
活跃值: (762)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
固件安全 2019-1-6 09:06
10
1
给力,表哥nb
雪    币: 119
活跃值: (298)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
渗透 2019-1-6 12:19
11
1
雪    币: 388
活跃值: (353)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
布丁先生 2019-1-6 21:48
12
1
mark
雪    币: 5250
活跃值: (1817)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wanttobeno 2019-1-7 10:35
13
1
请收下我的膝盖!
雪    币: 19586
活跃值: (60093)
能力值: (RANK:125 )
在线值:
发帖
回帖
粉丝
Editor 2019-1-7 13:31
14
0
感谢分享!
雪    币: 405
活跃值: (1900)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
wowocock 1 2019-1-7 16:10
15
0
需要内存DUMP来处理,没法直接从文件直接恢复导入表。
雪    币: 60
活跃值: (479)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
uvbs 2019-1-7 17:13
16
0
楼主 模拟器验证  这个能不能详细讲一下
雪    币: 576
活跃值: (1148)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
hkfans 3 2019-1-7 20:57
17
0
没有用调试器?就直接IDA干?
雪    币: 52
活跃值: (2178)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
实都 2019-1-8 11:30
18
0
厉害啊
雪    币: 227
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
名侦探柯阿 2019-1-8 14:47
19
0
强大的呀,  跟着大佬步伐
雪    币: 12837
活跃值: (8998)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
hzqst 3 2019-1-8 18:01
20
0
uvbs 楼主 模拟器验证 这个能不能详细讲一下
我在之前的帖子里发过
雪    币: 13697
活跃值: (1210)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
严启真 2019-1-8 18:23
21
0
楼主太厉害了,受教了…
雪    币: 73
活跃值: (893)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hixhi 2019-1-9 10:43
22
0
膜拜。VMP出来这么多年了,都不知道怎么下手的飘过。
雪    币: 711
活跃值: (243)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mydvdf 2019-3-28 19:54
23
0
66666666666666666666666
雪    币: 185
活跃值: (188)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
superior 2022-6-12 11:26
24
0
谢谢,需要这样的实战贴
游客
登录 | 注册 方可回帖
返回