hzqst/VmwareHardenedLoader

GitHub: hzqst/VmwareHardenedLoader

一款运行于 Windows x64 客户机内的内核驱动,通过修补固件表和隐藏多种虚拟化特征,帮助 VMware 虚拟机绕过 VMProtect、Themida 等软件的反虚拟机检测。

Stars: 2280 | Forks: 534

# VMwareHardenedLoader VMware 虚拟机强化反检测加载器 目前仅支持 Windows (vista~win10) x64 客户机。 它可以使 VMware 客户机免受 VMProtect 3.2、Safengine 和 Themida(反虚拟机功能)的检测。 ## 它的功能 VmLoader 驱动程序在运行时修补 SystemFirmwareTable,移除所有可检测到的签名,如 "VMware"、"Virtual" 和 "VMWARE"。 ## 构建 需要 Visual Studio 2015 / 2017 和 [Windows Driver Kit 10](https://docs.microsoft.com/zh-cn/windows-hardware/drivers/download-the-wdk)。 使用 Visual Studio 2015 / 2017 打开 VmLoader.sln 将 VmLoader 构建为 x64/Release。(目前不支持 x86) 如果要在测试签名模式下加载,请记住对 "bin/vmloader.sys" 进行测试签名。 # 安装说明 ## 警告 不要安装 vmtools,它会破坏一切! 请改用 TeamViewer / AnyDesk / mstsc / VNC viewer! ## 第一步:在 .vmx 中添加以下设置 ``` hypervisor.cpuid.v0 = "FALSE" board-id.reflectHost = "TRUE" hw.model.reflectHost = "TRUE" serialNumber.reflectHost = "TRUE" smbios.reflectHost = "TRUE" SMBIOS.noOEMStrings = "TRUE" isolation.tools.getPtrLocation.disable = "TRUE" isolation.tools.setPtrLocation.disable = "TRUE" isolation.tools.setVersion.disable = "TRUE" isolation.tools.getVersion.disable = "TRUE" monitor_control.disable_directexec = "TRUE" monitor_control.disable_chksimd = "TRUE" monitor_control.disable_ntreloc = "TRUE" monitor_control.disable_selfmod = "TRUE" monitor_control.disable_reloc = "TRUE" monitor_control.disable_btinout = "TRUE" monitor_control.disable_btmemspace = "TRUE" monitor_control.disable_btpriv = "TRUE" monitor_control.disable_btseg = "TRUE" monitor_control.restrict_backdoor = "TRUE" ``` 如果你在 scsi0 插槽(第一个插槽)有一个 SCSI 虚拟磁盘作为系统盘,请记住添加 ``` scsi0:0.productID = "Whatever you want" scsi0:0.vendorID = "Whatever you want" ``` 我使用的是 ``` scsi0:0.productID = "Tencent SSD" scsi0:0.vendorID = "Tencent" ``` ## 第二步:修改 MAC 地址 将客户机的 MAC 地址修改为除以下之外的任何地址: ``` TCHAR *szMac[][2] = { { _T("\x00\x05\x69"), _T("00:05:69") }, // VMWare, Inc. { _T("\x00\x0C\x29"), _T("00:0c:29") }, // VMWare, Inc. { _T("\x00\x1C\x14"), _T("00:1C:14") }, // VMWare, Inc. { _T("\x00\x50\x56"), _T("00:50:56") }, // VMWare, Inc. }; ``` ![mac](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/cbea418eb7015744.png) 你可以将 ``` ethernet0.address = "Some random mac address" ``` 添加到 vmx 文件中,而不是在 VMware GUI 中修改 MAC 地址 我使用的是 ``` ethernet0.address = "00:11:56:20:D2:E8" ``` ## 第三步:以管理员权限在虚拟机客户机中运行 install.bat 如果在启动服务时发生错误,请使用 DbgView 捕获内核调试输出。你可以发布一个 issue,附带 DbgView 的输出信息以及你的 ntoskrnl.exe。 如果没有发生错误,那么说明一切运行正常。 ## 展示 带有 VMProtect 3.2 加壳程序(启用了反虚拟机选项)的 VMware 客户机 win8.1 x64 ![before](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/5122eebdc6015745.png) ![sigs](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/47c88cd221015746.png) ![after](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/a8692e3a92015747.png) ## 许可证 本软件在 MIT 许可证下发布,详见 LICENSE。 部分实用程序源自 https://github.com/tandasat/HyperPlatform 使用 https://github.com/aquynh/capstone 对 ntoskrnl 代码进行反汇编。 ## 待办事项 通过查询 DXGI 接口可以检测到 VMware 虚拟显卡信息,这可以通过编辑显卡驱动文件来进行修改。
标签:Anti-VM, DAST, Safengine, SystemFirmwareTable, Themida, UML, Visual Studio, VMProtect, VMware, VMX配置, WDK, Windows x64, 云资产清单, 内核补丁, 反检测, 反虚拟机检测, 安全分析环境, 安全对抗, 客户端加密, 恶意软件分析, 游戏反作弊, 网络安全监控, 脱壳/加壳, 虚拟化安全, 虚拟机隐藏, 逆向工程, 驱动开发