mrexodia/TitanHide
GitHub: mrexodia/TitanHide
Windows 内核驱动,通过 SSDT Hook 劫持系统调用隐藏调试器存在,实现对各类反调试检测的绕过。
Stars: 2651 | Forks: 474
**请勿在此提交有关安装问题、错误检查 0x109: CRITICAL_STRUCTURE_CORRUPTION 崩溃或如何禁用 PatchGuard 的 Issues。我会将你永久移除出 Issue 追踪器。如果你不知道如何正确安装此工具,说明你掌握的知识还不足以负责任地使用它,你应该使用其他替代品,例如 [ScyllaHide](https://github.com/x64dbg/ScyllaHide)。**
# 概述
TitanHide 是一个旨在对某些进程隐藏调试器的驱动程序。该驱动程序 Hook 各种 Nt* 内核函数(使用 SSDT 表 Hook)并修改原始函数的返回值。要隐藏一个进程,你必须向驱动程序传递一个简单的结构体,其中包含进程 ID 和要启用的隐藏选项。内部 API 旨在以极小的代价添加 Hook,这意味着添加功能非常容易。
这个项目的想法是与 cypher 共同构思的,致敬!
# 功能
- ProcessDebugFlags (NtQueryInformationProcess)
- ProcessDebugPort (NtQueryInformationProcess)
- ProcessDebugObjectHandle (NtQueryInformationProcess)
- DebugObject (NtQueryObject)
- SystemKernelDebuggerInformation (NtQuerySystemInformation)
- SystemDebugControl (NtSystemDebugControl)
- NtClose (STATUS_INVALID_HANDLE/STATUS_HANDLE_NOT_CLOSABLE 异常)
- ThreadHideFromDebugger (NtSetInformationThread)
- 保护 DRx (硬件断点) (NtGetContextThread/NtSetContextThread)
# 测试环境
- Windows 10 x64 & x86
- Windows 8.1 x64 & x86
- Windows 7 x64 & x86 (SP1)
- Windows XP x86 (SP3)
- Windows XP x64 (SP1)
# 编译
1. 安装 Visual Studio 2022。
2. 安装 [WDK10](https://go.microsoft.com/fwlink/?linkid=2128854)/[WDK8](https://go.microsoft.com/fwlink/p/?LinkID=324284)/[WDK7](https://www.microsoft.com/download/confirmation.aspx?id=11800)。
3. 打开 `TitanHide.sln` 并点击编译!
# 系统要求
**在使用此驱动程序之前,你需要禁用 PatchGuard 和驱动程序签名强制。**
要禁用 PatchGuard,你可以尝试以下项目之一:
- [EfiGuard](https://github.com/Mattiwatti/EfiGuard)
- [SandboxBootkit](https://github.com/thesecretclub/SandboxBootkit)
- [Shark](https://github.com/9176324/Shark)
- [UPGDSED](https://github.com/hfiref0x/UPGDSED) (于 2019 年归档)
要加载驱动程序,你可以启用测试签名:
```
bcdedit /set testsigning on
```
# 安装说明
1. 将 `TitanHide.sys` 复制到 `%systemroot%\system32\drivers`。
2. 运行命令 `sc create TitanHide binPath= %systemroot%\system32\drivers\TitanHide.sys type= kernel` 来创建 TitanHide 服务。
3. 运行命令 `sc start TitanHide` 来启动 TitanHide 服务。
4. 运行命令 `sc query TitanHide` 来检查 TitanHide 是否正在运行。
要检查 TitanHide 是否正常工作,请使用 [DebugView](https://technet.microsoft.com/en-us/sysinternals/debugview.aspx) 或检查 `C:\TitanHide.log`。
## 隐藏
对于 VMProtect 3.9.4 及更高版本,你需要将服务名称更改为其他名称。例如 `sc create NotTitanHide`,这将绕过他们最新的“检测”。更改服务名称后,你需要在 x64dbg 中使用以下命令配置插件:
```
TitanHideName NotTitanHide
```
# 备注
- 使用 x64dbg 时,你可以使用 TitanHide 插件(可在下载页面获取)。
- **切勿在生产系统上运行此驱动程序,请始终使用虚拟机 (VM)!**
标签:0day挖掘, C/C++, DAST, DOM解析, DRx保护, NtQueryInformationProcess, PatchGuard绕过, Rootkit, SSDT Hook, UML, Windows内核, x86/x64, Zeek, 事务性I/O, 云资产清单, 内核安全, 内核驱动开发, 反作弊对抗, 反调试, 子域名枚举, 客户端加密, 恶意软件分析, 游戏安全, 白帽子, 系统安全, 逆向工程, 隐藏调试器, 驱动隐藏