-
-
[翻译]检测程序是否运行在VMware下(VMware has you)
-
发表于:
2008-1-5 17:39
9082
-
[翻译]检测程序是否运行在VMware下(VMware has you)
当你找到一个新的病毒时,我们要分析它,我们需要知道它是如何在复杂的网络环境下扩散的。如何在网络中传播,如何感染其他文件,最好的解决办法就是使用虚拟机来解决,让我们在一台机器里,虚拟出多个操作平台。这也就不会使得病毒在你自己的机器中真实的传播起来。这样也带来了一个问题:病毒如何发现自己在虚拟的机器中?
比如在虚拟机软件VMware中,他有一些后台端口来确定自己的虚拟设备和与真实的主机发送消息,当然有一些程序调用API提供给你来使用。
它是这样调用的:
mov ecx, 0Ah ; CX=function# (0Ah=get_version)
mov eax, 'VMXh' ; EAX=magic
mov dx, 'VX' ; DX=magic
in eax, dx ; specially processed io cmd
; output: EAX/EBX/ECX = data
cmp ebx, 'VMXh' ; also eax/ecx modified (maybe vmw/os ver?) <===注意
je under_VMware
VMware下注册表会建立:
HKLM\Software\VMware, Inc.\VMware for Windows NT -- 真实主机(不在VM下但是机器安装了VM)
HKLM\Software\VMWare, Inc.\VMware Tools\ -- 虚拟主机下
VMware的目录是
C:\Program Files\VMware -- 这说明机器有VM但无法确定是否是虚拟机下
当然还有许多其他的方法来确定,比如:incorrectly emulated ports, predetermined hardware info,special drivers等等.
About actions to be performed under virtual OS, well, it depends on
your wicked souls -- from fucking up everything。
原作者:z0mbie/29A
[课程]FART 脱壳王!加量不加价!FART作者讲授!