尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

如何绕过 VMProtect 反虚拟机检测:VmwareHardenedLoader 配置教程

如何绕过 VMProtect 反虚拟机检测:VmwareHardenedLoader 配置教程 如何绕过 VMProtect 反虚拟机检测VmwareHardenedLoader 配置教程【免费下载链接】VmwareHardenedLoaderVmware Hardened VM detection mitigation loader (anti anti-vm)项目地址: https://gitcode.com/gh_mirrors/vm/VmwareHardenedLoader带 VMProtect、Themida 壳的程序一在 VMware 虚拟机里运行经常直接弹出无法在虚拟机中运行。VmwareHardenedLoader 针对的就是这个问题一组 .vmx 配置、一次 MAC 地址修改再配一个 Windows x64 内核驱动抹掉反虚拟机检测能摸到的硬件标识和固件表字符串让 Guest 尽量表现得像一台物理机。程序是怎么认出你在虚拟机里的反虚拟机检测一般盯三个地方CPUID 指令暴露的虚拟化标志位、系统固件表里的 OEM 字符串、网卡的 MAC 前缀。VMware 默认给虚拟网卡分配的 MAC 落在 00:05:69、00:0C:29、00:1C:14、00:50:56 这几个 OUI 段注册方就是 VMware 自己检测代码比一下前缀就能确认。固件表更直接程序通过 SystemFirmwareTableInformation 系统调用取回 SMBIOS、DMI 数据里面就带着 VMware、Virtual Machine 这类字样。CPUID 那边也一样VMware 默认会点亮 hypervisor 标志位一条指令就能让程序确认自己跑在虚拟化环境里。第一层在 .vmx 里关掉硬件层面的开关编辑虚拟机的 .vmx 文件加入项目给出的这组配置hypervisor.cpuid.v0 关掉 CPUID 的虚拟化标志reflectHost 系列让主板型号、序列号、SMBIOS 反射宿主机的真实硬件SMBIOS.noOEMStrings 去掉固件里的 OEM 厂商字符串isolation.tools 与 monitor_control 一组选项则禁掉 VMware backdoor 端口、指针位置等常被检测利用的通道。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如果系统盘挂在 SCSI 控制器第一个槽位还要补上 scsi0:0.productID 和 scsi0:0.vendorID 两个键把磁盘的厂商信息改成别的值否则磁盘序列号又是一条独立线索。第二层换掉 MAC 地址进入虚拟机的网络适配器高级设置把 MAC 改成不属于上面四个 VMware OUI 段的任意地址或者跳过界面直接在 .vmx 里加一行 ethernet0.address 00:11:56:20:D2:E8效果相同。第三层内核驱动洗固件表前两层解决不了固件表里那些字符串——SystemFirmwareTableInformation 在内核空间返回数据用户态拦不住。VmwareHardenedLoader 的 VmLoader 驱动源码 走的是另一条路驱动加载后先在 ntoskrnl.exe 里定位处理固件表请求的代码路径项目内嵌 capstone 反汇编框架来定位调用点然后在运行时给这条路径打补丁过滤 VMware、Virtual、VMWARE 等可识别签名。带反虚拟机壳的程序再查固件表拿到的内容就不会命中特征。两个注意点驱动只支持 x64 虚拟机编译产物 bin/vmloader.sys 需要做 test-sign 测试签名才能加载虚拟机内不要安装 VMware Tools它的设备与驱动信息会把前面做的伪装重新暴露出来远程管理改用 mstsc、VNC 或 TeamViewer。五步部署克隆仓库git clone https://gitcode.com/gh_mirrors/vm/VmwareHardenedLoader拉取驱动源码与构建工程。用 Visual Studio 2015/2017 配合 Windows Driver Kit 10 打开 VmLoader.sln按 x64/Release 编译 VmLoader 目标得到 bin/vmloader.sys。对 bin/vmloader.sys 做 test-sign 测试签名否则测试签名模式下无法加载。按前两层改好 .vmx 配置与 MAC 地址重启虚拟机。在虚拟机内以管理员身份运行 install.bat注册并启动驱动服务无报错即安装成功。如何验证驱动是否生效用项目自带的演示方式最直观在虚拟机里跑一个 VMProtect 3.2 打包、勾选 anti-vm 选项的测试程序。驱动未生效时它会拒绝运行用 DbgView 还能观察到 SystemFirmwareTableInformation 连续返回成功并读到含特征的表驱动生效后查询结果里不再有特征字符串程序正常通过。如果服务启动失败用 DbgView 抓取内核调试输出连同当前系统的 ntoskrnl.exe 一起提交 issue——不同 Windows 小版本的 ntoskrnl 结构有差异驱动靠反汇编动态定位代码个别版本需要适配。适用边界系统范围仅 Windows Vista 到 Win10 的 64 位 Guestx86 不支持。已验证目标VMProtect 3.2、Safengine、Themida 的反虚拟机检测。已知残留虚拟显卡信息仍可通过 DXGI 接口查询属于项目 TODO 中修改显卡驱动文件才能覆盖的部分。用途建议限定在恶意软件分析、脱壳研究等自己可控的环境避免用于规避商业软件的授权检查。下一步先按五步把驱动装起来用带 anti-vm 壳的测试程序验证结果某项检测仍被命中时先用 DbgView 确认驱动服务状态再对照 .vmx 配置逐项排查——三层里漏掉任何一层对应的检测路径就会重新打开。【免费下载链接】VmwareHardenedLoaderVmware Hardened VM detection mitigation loader (anti anti-vm)项目地址: https://gitcode.com/gh_mirrors/vm/VmwareHardenedLoader创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表