吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1807|回复: 8
上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
楼主
Rust 发表于 2026-3-23 06:16 回帖奖励

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

我的好朋友 R-R 之前曾推出过"VMP Anti-Debug"系列教程,其中详细讲述了基于 TitanHide 的反反调试驱动方案。了解 TitanHide 的朋友应该都知道,它是一款基于 Ring 0 层、通过 HOOK SSDT 方式实现的开源反反调试驱动。

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

1. 检测原理:设备符号检测

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

核心代码如下:

HANDLE hDevice = CreateFileA("\\\\.\\TitanHide", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);

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

2. 逆向分析:字符串的动态构造

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

2.1 栈上动态构造字符

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

mov ecx, 5C
mov word ptr ss:[ebp-1D0], cx      
mov edx, 3F
mov word ptr ss:[ebp-1CE], dx      
mov eax, edx
mov word ptr ss:[ebp-1CC], ax      
mov word ptr ss:[ebp-1CA], cx     
mov edx, 54
mov word ptr ss:[ebp-1C8], dx    
mov eax, 69
mov word ptr ss:[ebp-1C6], ax      
mov ecx, 74
mov word ptr ss:[ebp-1C4], cx     
mov edx, 61
mov word ptr ss:[ebp-1C2], dx     
mov eax, 6E
mov word ptr ss:[ebp-1C0], ax    
mov ecx, 48
mov word ptr ss:[ebp-1BE], cx     
mov edx, 69
mov word ptr ss:[ebp-1BC], dx      
mov eax, 64
mov word ptr ss:[ebp-1BA], ax      
mov ecx, 65
mov word ptr ss:[ebp-1B8], cx      
xor edx, edx
mov word ptr ss:[ebp-1B6], dx    
2.2 构造 UNICODE_STRING 结构体

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

lea eax, dword ptr ss:[ebp-1D0]   
lea ecx, dword ptr ds:[eax+2]     
mov dx, word ptr ds:[eax]          
add eax, 2                          
cmp dx, bx                         
jne 3.vmp                   

sub eax, ecx                       
sar eax, 1                          
add eax, eax                        
2.3 填充 UNICODE_STRING 结构体

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

mov word ptr ss:[ebp-16C], ax     
mov ecx, dword ptr ss:[ebp-16C]
add ecx, 2                        
mov word ptr ss:[ebp-16A], cx      
lea edx, dword ptr ss:[ebp-1D0]
mov dword ptr ss:[ebp-168], edx
2.4 构造 OBJECT_ATTRIBUTES 结构体

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

mov dword ptr ss:[ebp-320], 18    
mov dword ptr ss:[ebp-31C], ebx    
mov dword ptr ss:[ebp-314], ebx   
lea eax, dword ptr ss:[ebp-16C]
mov dword ptr ss:[ebp-318], eax    
mov dword ptr ss:[ebp-310], ebx   
mov dword ptr ss:[ebp-30C], ebx    

3. 核心调用与判断

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

push 60                          
lea ecx, dword ptr ss:[ebp-364]
push ecx                          
lea edx, dword ptr ss:[ebp-320]
push edx                         
push C0100080                    
lea eax, dword ptr ss:[ebp-140]
push eax                           
mov ecx, dword ptr ss:[ebp-30]    
or ecx, 0                          
syscall                         

调用结束后,通过返回值判断是否成功打开了设备句柄,从而确定是否存在 TitanHide:

test eax, eax                 
jl 3.exe
mov dword ptr ss:[ebp-2E8], 2

如果 eax 非负(即成功打开设备),则判定检测到 TitanHide,并执行相应的反调试逻辑。

结语

值得一提的是,目前 TitanHide 的作者已经更新了版本,修复了此类检测问题,用户无需再手动修改驱动即可规避该检测。

声明:本文仅供安全研究人员学习与参考,聚焦于技术原理探讨。文中未包含任何恶意代码或可直接利用的攻击载荷,严禁用于非法目的。

免费评分

参与人数 3威望 +1 吾爱币 +22 热心值 +3 收起 理由
allspark + 1 + 1 用心讨论,共获提升!
evea + 1 + 1 谢谢@Thanks!
Hmily + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
starsunyzl 发表于 2026-3-25 11:37
老黄历了,只改驱动设备符号早就过不了最新VMP了,上次那个帖子我就说过了
推荐
Say 发表于 2026-3-24 03:58
董督秀 发表于 2026-3-23 18:24
实测无效。即使改了设备名和符号链接名,加载重新编译的驱动后,仍然无法过最近版的VMP反调试。
不会只有 ...

我跟你一样,甚至在源码里改了设备名称还是过不了反调试
4#
jasonssun 发表于 2026-3-23 13:39
5#
iaoedsz2018 发表于 2026-3-23 14:59
握草!终于找到原因了,我还以为TitanHide拿不动刀了,结果是被针对了。。。
头像被屏蔽
6#
zzzz8563 发表于 2026-3-23 15:17
提示: 作者被禁止或删除 内容自动屏蔽
7#
董督秀 发表于 2026-3-23 18:24
实测无效。即使改了设备名和符号链接名,加载重新编译的驱动后,仍然无法过最近版的VMP反调试。
不会只有我一人是这种情况吧?
8#
fghtiger 发表于 2026-3-23 20:08
董督秀 发表于 2026-3-23 18:24
实测无效。即使改了设备名和符号链接名,加载重新编译的驱动后,仍然无法过最近版的VMP反调试。
不会只有 ...

有最新版加密的样本?分享下。
9#
ZANG19971111 发表于 2026-3-24 16:36
感谢大佬,我去试试
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-9-30 17:46

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表