VMware检测绕过复盘:让加固程序在虚拟机里正常跑起来

📅 2026/8/24 3:56:29
VMware检测绕过复盘:让加固程序在虚拟机里正常跑起来
VMware检测绕过复盘让加固程序在虚拟机里正常跑起来【免费下载链接】VmwareHardenedLoaderVmware Hardened VM detection mitigation loader (anti anti-vm)项目地址: https://gitcode.com/gh_mirrors/vm/VmwareHardenedLoader把用 VMProtect 加壳的样本丢进 VMware双击就闪退反作弊组件在虚拟环境里直接拒绝启动同一套测试用例在物理机通过、在虚拟机全挂——做逆向分析和软件测试的人大概率都撞上过这类事。开源项目 VMwareHardenedLoader 干的就是这件事它在 Windows x64 客户机的内核里加载一个驱动运行时改写系统固件表SystemFirmwareTable把 VMware、Virtual、VMWARE 这些特征串从源头抹掉从而绕过 VMProtect 3.2、Safengine、Themida 等程序内置的 anti-vm 检查。下面按检测原理 → 项目机制 → 实操步骤 → 排障的顺序把整套流程讲清楚。你的虚拟机是怎么被认出来的 检测方其实不需要找到铁证只要命中任意一个线索就足以判定你在虚拟机里。常见的线索有这么几类固件表SMBIOS/DMI。这是虚拟机最露馅的地方相当于一张写着自己厂牌的身份证Windows 通过SystemFirmwareTableInformation系统调用查询固件表返回的数据里直接躺着 VMware, Inc.、VMware SVGA 这样的字符串。CPU 指纹。hypervisor 会在 CPUID 指令的返回里留下标记一条指令就能查出来。网卡 MAC 地址。00:05:69、00:0C:29、00:1C:14、00:50:56 这四个前缀都注册在 VMware 名下项目驱动代码里甚至把这四组前缀硬编码进去逐条比对。后门与 monitor 接口。VMware 提供给客户机的后门命令口和一系列 monitor 控制通道本身就是我运行在 VMware 上的直接证据。VMware Tools 自身。装了这个等于主动给虚拟机挂上我是 VMware的牌子各种查询接口指针位置、版本信息等都会重新暴露环境。所以这不是藏好一处就行的游戏而是一个逐项排除的过程——每条通道都得处理漏一条就前功尽弃。驱动、配置、网络VMware检测绕过的三层机制项目的思路很朴素检测方靠什么判断就去改掉那个源头。具体拆成三层。第一层驱动层处理系统会暴露的东西。核心代码在 VmLoader/ 目录里。main.cpp实现了一个内核驱动加载后它接管系统固件表的查询路径拦截返回给用户态的数据把里面的 VMware/Virtual/VMWARE 特征串删掉。配套的 VmLoader.inf 是安装描述文件VmLoader.vcxproj是工程文件整体由根目录的VmLoader.sln组织编译。这里有个容易被忽略的细节驱动要 patch 的是目标系统的 ntoskrnl而不同内核版本的代码布局并不一样——所以项目内置了 capstone/ 反汇编引擎README 里说明它是用来反汇编 ntoskrnl 代码、定位 patch 点的分析工具。第二层配置层处理虚拟化层会暴露的东西。在 .vmx 文件里把hypervisor.cpuid.v0设为 FALSE 去掉 CPUID 标记board-id、hw.model、serialNumber、smbios全部 reflectHost让硬件标识反映宿主机真机SMBIOS.noOEMStrings清掉 OEM 字符串isolation.tools.*和一组monitor_control.disable_*开关则把后门与 monitor 通道逐条关掉。如果系统盘挂在 SCSI 第一槽位还要给磁盘自定义productID和vendorID避免虚拟磁盘的厂商信息穿帮。第三层网络层处理网卡会暴露的东西。把 MAC 地址改成不以 VMware 四个前缀开头的值。可以写进 .vmxethernet0.address 某个随机MAC也可以在图形界面里改两者效果等价。三层合起来本质上是给虚拟机做了一次彻底的虚拟机环境伪装固件里查不到厂牌CPUID 里没有 hypervisor 标记网卡不露 VMware 的 OUI后门通道也不通。从克隆到验证的三阶段实操阶段一环境准备做什么确认目标环境并构建驱动。目前项目只支持 Windows Vista 到 Win10 的 x64 客户机没有 x86 版本。怎么做克隆仓库git clone https://gitcode.com/gh_mirrors/vm/VmwareHardenedLoader准备 Visual Studio 2015/2017 和 Windows Driver Kit 10用 VS 打开VmLoader.sln按 x64/Release 构建然后对产物bin/vmloader.sys做 test-sign 签名以 test-signing 模式加载必须签名。预期结果得到一个已测试签名的 vmloader.sys。另外有一条红线客户机里不要安装 VMware Tools——README 的原话是it will ruin everything。远程连接请走 mstsc、VNC 或第三方远控工具。阶段二核心配置做什么修改 .vmx把硬件指纹、后门通道、MAC 特征全部处理掉。怎么做把 README 给出的那组 .vmx 配置写进虚拟机配置文件关键项包括hypervisor.cpuid.v0 FALSE smbios.reflectHost TRUE SMBIOS.noOEMStrings TRUE isolation.tools.getVersion.disable TRUE monitor_control.restrict_backdoor TRUE完整清单以 README 为准。SCSI 系统盘追加两行scsi0:0.productID/scsi0:0.vendorID填任意像真机的值再设置ethernet0.address指定一个随机 MAC。喜欢用界面的话路径是虚拟机设置 → 网络适配器 → 高级MAC 地址一栏就在那里。预期结果MAC 不再以 00:05:69 / 00:0C:29 / 00:1C:14 / 00:50:56 开头SMBIOS 查询结果里搜不到任何 VMware OEM 字符串。阶段三效果验证做什么在客户机内加载驱动并确认检测被绕过。怎么做在虚拟机里以管理员身份运行install.bat。预期结果服务无报错启动即代表驱动加载成功。真正的验收标准是跑一个带 anti-vm 选项的 VMProtect 3.2 加壳测试程序——处理之前它会直接拒绝运行或闪退处理后能正常进入主界面。作者用 win8.1 x64 客户机做过演示处理前后对比见 README 的 Showcase 部分。验证不通过这几个坑最常见 ⚠️VMware Tools 又回来了。这是最高频的翻车点往往是之前图方便装过。Tools 的服务、指针位置上报、版本查询接口会重新暴露虚拟环境前面所有配置等于白做。排查时先确认客户机里没有 vmtools 服务和对应进程卸载后改用远程桌面再重新验证。install 服务启动失败。驱动需要按代码模式定位并 patch 目标系统的 ntoskrnl不同内核构建的偏移不同个别系统版本可能不匹配。此时用 DbgView 捕获内核调试输出把日志和当前系统的 ntoskrnl.exe 一起整理出来按 README 的建议提交到项目 issue 里——这也是作者预留的排障通道别硬改驱动。改了 MAC 却没生效。常见原因有两个.vmx 里本来就有ethernet0.address一行图形界面的修改会被文件配置覆盖或者你克隆过虚拟机旧 MAC 被原样继承。直接打开 .vmx 文本核对最稳妥。同理SCSI 系统盘的厂商/型号字符串也常被忽略一并检查。显卡层面的残留。README 的 TODO 里承认虚拟显卡信息可以通过 DXGI 接口查询到目前的应对是修改显卡驱动文件。如果你测的程序恰好重点查显卡验证不通过时可以往这个方向排查。哪些场景值得用这套方案恶意软件分析需要干净的沙箱环境、商业软件做跨平台兼容性测试、逆向研究 anti-vm 技术本身——只要诉求是让虚拟机表现得像真机方便测试这套 VMware检测绕过方法就适用。它的改动都集中在客户机内部不碰宿主机卸载驱动、重建虚拟机即可回滚试验成本低。最后提醒一句这类技术是中性工具请只在自己拥有或有权测试的环境中使用避免用于盗版破解或作弊等违规用途。【免费下载链接】VmwareHardenedLoaderVmware Hardened VM detection mitigation loader (anti anti-vm)项目地址: https://gitcode.com/gh_mirrors/vm/VmwareHardenedLoader创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考