基于寄存器状态的VMware虚拟机探测
本文为原创文章,转载或引用时必须保留本文链接和此版权声明信息:
VMDetect是在病毒和恶意软件中经常用到的一种机制,用来检测当前是否是被运行在虚拟机环境中。如果这些恶意软件发现自己是被运行在虚拟机中,通常不会执行恶意行为,以增加安全专家分析它们的难度。同时这些探测机制也是可以作为恶意软件分析过程中将该样本判定为”恶意”的一个标准,这也正是本文撰写的目的。
本程序是一个用C语言写的小程序,用来检测当前是否被运行在VMware中。
之前也写过一个综合多种方法检测VMware的程序,回头会整理下放进Github中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
#include <windows.h> #define WIN32_LEAN_AND_MEAN void filter() { return; } int main(int argc, char *argv[]) { __try { __asm { mov eax, 0x564D5868 mov ebx, 0xAA mov ecx, 0xA mov dx, 5658h in eax, dx } MessageBoxA(NULL, "You shouldn't trust Vmware chief...", "Sucker", MB_OK); } __except(filter()) { MessageBoxA(NULL, "Good choice not running in Vmware", "", MB_OK); } return 0; } |