好友
阅读权限25
听众
最后登录1970-1-1
|
[0x00]
大家好,我是R-R,流水线的王_,今天在电子厂刚打完螺丝,下了早班,待会还要去上晚班,肚子好饿,打螺丝好累。
[0x01]
主要是对VMP3.9x以上的版本的虚拟机检测的一个教程。
[0x02]
这里借用了一个之前别人写的驱动,之前是在看雪上看到了的,写的非常好。
驱动下载地址 https://github.com/hzqst/VmwareHardenedLoader
驱动是通过拦截系统固件表(ACPI、RSMB、FIRM)的查询,实时擦除返回数据中的 "VMware"、"VMWARE"、"Virtual" 字符串,从而欺骗上层应用的反虚拟化检测。
驱动是采用DKOM的方式,直接定位并篡改内核中未导出的全局变量与链表节点内的函数指针。
因此相对来说很稳定,不会触发 PatchGuard。
[0x03]
驱动的使用方法
在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"
修改配置之后,开启虚拟机,加载Bin文件夹的驱动即可过掉VMP的虚拟机检测。
由于VMP的更新针对了此驱动,导致此驱动用来反虚拟机检测停留在了3.5的版本,以上的版本全部失效。
[0x04]
之后由于3.94的泄漏版出来了,我和我的天才程序员好友拿到了VMP最新版的Win32runtime.dll,
是的,你没听错,是runtime.dll ,直接让VMP“裸奔”了。
言归正传,至于这个驱动为什么被检测。
我们看下图,
这段代码在擦除虚拟机痕迹的时候,把所有的检测字符串改成用7来进行了填充。
狡猾的VMP在新版的虚拟机检测中加上了针对“7”的检测。
可是那又怎么样呢,我把他改成了8,重新编译了下,就饶过了。
是的,你没看错,你们只需要下载这个驱动代码,装上SDK&WDK,找到如图代码,把7->8 编译后按上面的教程做一遍即可。
[0x05]
教程就到这里,感谢
https://github.com/hzqst/VmwareHardenedLoader
提供的驱动和代码。
[0x06]
我是流水线的王_
我的其他教程
【详细讲解x64dbg配置MCP实现Ai自动化分析代码】 https://www.bilibili.com/video/B ... 6de514ce3fcda0a2c12
【x64VMProtect通过Pcode绕过授权代码锁】 https://www.bilibili.com/video/B ... 6de514ce3fcda0a2c12
【VMProtect3.9以上过反调试教程】 https://www.bilibili.com/video/B ... 6de514ce3fcda0a2c12
[0x07]
@VMProtect
[0x08]
肚子好饿,带带我吧。 |
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|
|