首页
社区
课程
招聘
[原创]记一次 VMP 对 TitanHide 的检测分析
发表于: 2小时前 177

[原创]记一次 VMP 对 TitanHide 的检测分析

2小时前
177

记一次 VMP 对 TitanHide 的检测分析

VMProtect(简称 VMP)想必大家都很熟悉。随着其版本的不断迭代,高版本 VMP 的分析难度日益增加。

了解 TitanHide 的朋友应该都知道,它是一款基于 Ring 0 层、通过 HOOK SSDT 方式实现的开源反反调试驱动。

那么,VMP 究竟是依据什么来检测 TitanHide 的呢?又是如何完成这一检测过程的?在深入分析之前,我们先简单回顾一下 TitanHide 的基本原理。

许多用户可能已经用过或了解过 TitanHide。在分析过程中我发现,VMP 主要是通过对 TitanHide 的驱动设备符号(Device Symbol)进行检测来实现识别的。

核心代码如下:

起初我在分析 VMP 时,误以为它检测了其他特征,甚至尝试重新编写了一个驱动来规避,但最终确认其检测点正是上述的设备名称。

为了规避静态字符串扫描,VMP 采用了在栈上动态构造字符的方式。以下是具体的汇编逻辑:

VMP 逐字节将字符串 \\?\TitanHide 写入栈内存:

随后,代码计算字符串长度并构建 UNICODE_STRING 结构:

接着完成结构体的具体字段填充:

最后,构建用于文件操作的 OBJECT_ATTRIBUTES 结构:

跳过繁琐的结构初始化细节,直接关注最关键的部分:VMP 直接使用 syscall 指令调用 NtOpenFile API。


传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 1小时前 被Crystal1编辑 ,原因: 调整格式
收藏
免费 12
支持
分享
最新回复 (5)
雪    币: 3032
活跃值: (6778)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
牛逼牛逼
2小时前
0
雪    币: 50
活跃值: (545)
能力值: ( LV2,RANK:19 )
在线值:
发帖
回帖
粉丝
3

感谢大家的支持

最后于 1小时前 被Crystal1编辑 ,原因:
2小时前
0
雪    币: 4
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
6
1小时前
0
雪    币: 457
活跃值: (590)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
哇,学到了!
22分钟前
0
雪    币: 0
活跃值: (621)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
5分钟前
0
游客
登录 | 注册 方可回帖
返回