虚拟机检测与反检测相关

来源:互联网 发布:50寸网络电视 编辑:程序博客网 时间:2024/06/01 10:31

虚拟机软件的漏洞和虚拟机执行环境的检测与反检测(一)

虚拟机软件的漏洞和虚拟机执行环境的检测与反检测(二)

vmware的检测与反检测

检测虚拟机汇编代码

漏洞法检测虚拟机

虚拟机检测技术剖析

检测源码:

#include <windows.h>#include <stdio.h>BOOL gInVMWARE, gInVirtualPC;BOOL VMWareTest(){BYTE PortValue1,PortValue2;__try{    __asm    {      pushad       pushfd      xor ebx,ebx      mov ecx,0xa       mov eax, 'VMXh'        ; EAX=magic    //564D5868      mov dx, 'VX'            ; DX=magic      in eax, dx            ; specially processed io cmd      cmp ebx, 'VMXh'        ; also eax/ecx modified (maybe vmw/os ver?)      sete al;    movzx eax, al      mov gInVMWARE, eax;      popfd      popad    }}__except(EXCEPTION_EXECUTE_HANDLER){    gInVMWARE=FALSE;}return gInVMWARE;}BOOL VirtualPCTest(){__try{    __asm    {      pushad            mov ebx, 0 // Flag      mov eax, 1 // VPC function number      __emit 0Fh      __emit 3Fh      __emit 07h      __emit 0Bh      test ebx, ebx    sete al    movzx eax, al      mov gInVirtualPC , eax;      popad    }}__except(EXCEPTION_EXECUTE_HANDLER){    gInVirtualPC=FALSE;}return gInVirtualPC;}BOOL VMTest(){    ULONG xdt = 0 ;    ULONG InVM = 0;    __asm    {        push edx            sidt [esp-2]            pop edx            nop            mov xdt , edx    }    printf("idt = %08x\n" , xdt);    if (xdt > 0xd0000000)    {        //printf("IDT Test :running in vm!\n");        InVM = 1;    }    else    {        InVM = 0;    }    __asm    {        push edx            sgdt [esp-2]            pop edx            nop            mov xdt , edx    }        printf("gdt = %08x\n" , xdt);        if (xdt > 0xd0000000)    {        InVM += 1;    }    else    {        InVM += 0;    }    return InVM;}int main(){    if (VMWareTest())    {        printf("In Vmware !!!");    }    else if (VirtualPCTest())    {        printf("In VirtualPC!!!!");    }    else if (VMTest())    {        printf("In VM !");    }    else    {        printf("In Host!");    }        getchar ();    return 1;}


过虚拟机中Themida检测方法:
两步可以通吃很多Anti-vmware的方法

第一步是在虚拟机系统的配置文件添加 

monitor_control.restrict_backdoor = "true"

关闭后门

第二步建议开起虚拟机,然后虚拟机 - 设置 - Hardware - Processors - 禁止加速二进制翻译勾起

或添加

disable_acceleration = "TRUE"



其它参考:

http://forum.eviloctal.com/thread-31834-1-1.html