十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

VMProtect 3.2 反虚拟机检测怎么绕?VmwareHardenedLoader 驱动级隐藏实战指南

VMProtect 3.2 反虚拟机检测怎么绕?VmwareHardenedLoader 驱动级隐藏实战指南 VMProtect 3.2 反虚拟机检测怎么绕VmwareHardenedLoader 驱动级隐藏实战指南【免费下载链接】VmwareHardenedLoaderVmware Hardened VM detection mitigation loader (anti anti-vm)项目地址: https://gitcode.com/gh_mirrors/vm/VmwareHardenedLoaderVmwareHardenedLoader 是一款驱动级的 VMware 检测绕过工具它在运行时直接修补 SystemFirmwareTable系统固件表把VMware、Virtual 等可被程序读到的特征字符串移除让 VMProtect 3.2、Safengine、Themida 这类带反虚拟机保护的加壳程序在 x64 guest 里认不出虚拟环境。下面先理清这类程序到底往哪里探测再走一遍配置、编译、安装的完整流程最后拆开驱动内部的实际动作。 反虚拟机程序往哪看先把检测面列全动手之前需要知道受保护程序常用的五条探测路径后文的每一项隐藏手段都对应其中一条CPUIDhypervisor 会在 CPUID 0 的返回里暴露虚拟化标志位读一下就能判断。固件表Windows 通过 SystemFirmwareTable 接口把 SMBIOS 等表内容交给用户态表里天然带着VMware、Virtual、VMWARE SVGA等字样。MAC 地址网卡 OUI 前缀与 VMware 厂商注册段吻合。存储设备SCSI 虚拟磁盘的型号、厂商字符串同样带有 VMWare 特征。显卡通过 DXGI 接口查询适配器信息能暴露 VMware 虚拟显卡。下面这张十六进制转储取自一台未修补虚拟机的 SMBIOS 固件表VMware、VMWARE SVGA、Virtual 等特征串清晰可见这正是加壳程序判断我在虚拟机里的依据⚠️ 第一个坑不要安装 VMware ToolsVMware Tools 会把自身信息主动暴露给 guest 系统装上去会抵消下面所有隐藏手段。远程会话改用 TeamViewer、AnyDesk、mstsc 或任意 VNC 客户端即可。环境要求guest 为 Windows Vista 到 Win10 的 x64 系统目前不支持 x86。宿主机运行 VMware Workstation 或 Player。编译需要 Visual Studio 2015 或 2017外加 Windows Driver Kit 10。 重写 .vmx必须改的 6 组关键项关闭虚拟机后直接编辑 .vmx 文件。六组配置各自负责一条探测路径第一组屏蔽 CPUID 0 的 hypervisor 标志位让第一条检测路径直接失效hypervisor.cpuid.v0 FALSE第二组让主板型号、产品型号、序列号和 SMBIOS 直接反映宿主机真实值并清掉默认 OEM 字符串固件表查询就再命不中VMware字样board-id.reflectHost TRUE hw.model.reflectHost TRUE serialNumber.reflectHost TRUE smbios.reflectHost TRUE SMBIOS.noOEMStrings TRUE第三组禁用 Tools 的四个版本与指针查询接口防止 guest 内部发现 Tools 相关线索isolation.tools.getPtrLocation.disable TRUE isolation.tools.setPtrLocation.disable TRUE isolation.tools.setVersion.disable TRUE isolation.tools.getVersion.disable TRUE第四组体量最大关掉 9 项 VT-x 监控后门能力这是 VMware 特有的一扇侧门不少反虚拟机检测靠它确认虚拟化环境最后再补上 restrict_backdoor 统一收紧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 TRUEmonitor_control.disable_btmemspace TRUE monitor_control.disable_btpriv TRUE monitor_control.disable_btseg TRUE monitor_control.restrict_backdoor TRUE系统盘挂在 scsi0:0 槽位SCSI 虚拟磁盘时用第五、六组把磁盘型号与厂商伪装成真实设备作者示例用的是腾讯的盘scsi0:0.productID Tencent SSD scsi0:0.vendorID Tencent 换掉 MAC避开这 4 个 VMware 前缀受保护程序会读取网卡 MAC 并比对 VMware 的 OUI 注册段guest 的 MAC 不能落在下面四个前缀里00:05:6900:0c:2900:1C:1400:50:56在 VMware 图形界面的虚拟机设置 → 网络适配器 → 高级里可以直接修改 MAC 地址也可以跳过界面在 .vmx 里直接写死作者示例值ethernet0.address 00:11:56:20:D2:E8编译 x64/Release 并签名 vmloader.sys宿主机上获取源码git clone https://gitcode.com/gh_mirrors/vm/VmwareHardenedLoader用 Visual Studio 2015/2017 打开项目根目录的 VmLoader.sln选择 x64/Release 配置构建产物是 bin/vmloader.sys。guest 若要以测试签名模式加载驱动先对 vmloader.sys 做测试签名并在 guest 里开启测试签名开关bcdedit /set testsigning on具体构建细节可参考项目内的编译说明文档capstone/COMPILE_MSVC.TXT。安装、验证与排障在 guest 内以管理员权限运行 install.bat完成 VmLoader 驱动的安装与启动。验证方式跑一个用 VMProtect 3.2 加壳且启用反虚拟机选项的程序。安装驱动前程序会判定处于虚拟机中并拒绝运行安装后再跑同一程序SystemFirmwareTableInformation 调用正常返回但表内容已不含特征串程序照常执行。若服务启动阶段报错用 Sysinternals 的 DbgView 抓取内核调试输出连同本机的 ntoskrnl.exe 一起反馈给作者便于定位与当前 Windows 版本的兼容问题。驱动内部修补动作到底做了什么驱动加载后大致是四个动作核心实现在 VmLoader/main.cpp 与 VmLoader/cs_driver_mm.c定位 ntoskrnl 内存映像用 capstone 反汇编引擎找到固件表相关处理函数及其提供者链表。注册自己的处理器接管 SystemFirmwareTable 查询也就是运行时修补固件表的具体落点。扫描返回的表内容移除VMware、Virtual、VMWARE等特征串并改写会暴露虚拟身份的硬件信息。拦截其余可能泄露虚拟机身份的系统调用保证用户态拿到的数据与物理机一致。集成的 capstone 引擎capstone/ 目录承担内核代码分析使上述定位逻辑能适配不同 Windows 构建。许可、边界与后续项目采用 MIT 许可部分工具过程来自 tandasat/HyperPlatform 项目反汇编能力基于 capstone 引擎。已知边界VMware 虚拟显卡的信息仍可通过查询 DXGI 接口获得后续计划通过修改显卡驱动文件来覆盖这条探测路径。参考资料VmwareHardenedLoader 项目主页gitcode 平台搜索项目名即可找到编译指南capstone/COMPILE_MSVC.TXT驱动源码目录VmLoader/【免费下载链接】VmwareHardenedLoaderVmware Hardened VM detection mitigation loader (anti anti-vm)项目地址: https://gitcode.com/gh_mirrors/vm/VmwareHardenedLoader创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表