吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 9537|回复: 3
收起左侧

[其他转载] 反虚拟机程序测试一

 关闭 [复制链接]
tk86935367 发表于 2012-5-8 17:53
本帖最后由 tk86935367 于 2012-5-8 17:54 编辑

PS:这个是自己写的一个反虚拟机的测试,不知道发在这里合不合适,如果不合适,版主帮忙移动下。

这是一个最简单的反虚拟机测试,通过检测是否包含虚拟机tools的进程来判断是否是虚拟机。

首先写一个函数,判断是否包含某进程

//是否包含某进程
 BOOL IsContainsProcess(CString strProName)
 {
     PROCESSENTRY32  pe32;   //定义结构体变量来保存进程的信息
     pe32.dwSize = sizeof(pe32);   //填充大小
     
     HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);  //创建快照
     
     if (hProcessSnap==INVALID_HANDLE_VALUE)
     {
         //MessageBox("进程快照失败","提示",MB_OK);
          exit(1);
     }
     
     //遍历所有快照
     BOOL bMore = ::Process32First(hProcessSnap,&pe32);
     while(bMore)
     {
         if (strProName==pe32.szExeFile)
         {
             return TRUE;  //如果存在该进程,则返回TRUE
             bMore=FALSE;   //停止循环
         }
         else
         {
             bMore=::Process32Next(hProcessSnap,&pe32);
         }
     }
     //扫尾
     CloseHandle(hProcessSnap);
     return FALSE;     
 }
然后,就可以在程序初始化的时候进行判断,是否包含了几个进程
 if ( 
           (IsContainsProcess("VBoxTray.exe")) ||
           (IsContainsProcess("VBoxService.exe")) ||
           (IsContainsProcess("VMwareUser.exe"))|| 
           (IsContainsProcess("VMwareTray.exe")) ||
           (IsContainsProcess("VMUpgradeHelper.exe"))||
           (IsContainsProcess("vmtoolsd.exe"))||
           (IsContainsProcess("vmacthlp.exe"))
           )
      {
           AfxMessageBox("请不要在虚拟机中运行该程序");
           exit(0);
      }
下面,我们对这个程序进行反反调试
程序下载地址:http://files.cnblogs.com/tk091/AntiVirtualTest.zip首先我们用OD载入,查找字符串。找到“请不要在虚拟机中运行该程序”,点击跟随,到达反汇编区域。
 00401496   > \6A 00                        push    0
 00401498   .  6A 00                         push    0
 0040149A   .  68 A0804100             push    004180A0                         ;  请不要在虚拟机中运行该程序
 0040149F   .  E8 8FF80000            call    00410D33
找到该跳转的来源
 004013C9   . /0F85 C7000000                                   jnz     00401496
 004013CF   . |51                                                         push    ecx
 004013D0   . |8BCC                                                    mov     ecx, esp
 004013D2   . |896424 14                                            mov     dword ptr [esp+14], esp
 004013D6   . |68 10814100                                        push    00418110                         ;  vboxservice.exe
 004013DB   . |E8 48E30000                                       call    0040F728
  004013E0   . |8BCE                                                  mov     ecx, esi
 004013E2   . |E8 29FEFFFF                                      call    00401210
 004013E7   . |85C0                                                    test    eax, eax
 004013E9   . |0F85 A7000000                                   jnz     00401496
 004013EF   . |51                                                        push    ecx
 004013F0   . |8BCC                                                   mov     ecx, esp
 004013F2   . |896424 14                                           mov     dword ptr [esp+14], esp
 004013F6   . |68 00814100                                       push    00418100                         ;  vmwareuser.exe
 004013FB   . |E8 28E30000                                      call    0040F728
 00401400   . |8BCE                                                   mov     ecx, esi
 00401402   . |E8 09FEFFFF                                     call    00401210
 00401407   . |85C0                                                   test    eax, eax
 00401409   . |0F85 87000000                                  jnz     00401496
 0040140F   . |51                                                      push    ecx
 00401410   . |8BCC                                                 mov     ecx, esp
 00401412   . |896424 14                                         mov     dword ptr [esp+14], esp
 00401416   . |68 F0804100                                    push    004180F0                         ;  vmwaretray.exe
 0040141B   . |E8 08E30000                                   call    0040F728
 00401420   . |8BCE                                                mov     ecx, esi
 00401422   . |E8 E9FDFFFF                                   call    00401210
 00401427   . |85C0                                               test    eax, eax
 00401429   . |75 6B                                                jnz     short 00401496
 0040142B   . |51                                                      push    ecx
 0040142C   . |8BCC                                                 mov     ecx, esp
 0040142E   . |896424 14                                         mov     dword ptr [esp+14], esp
 00401432   . |68 DC804100                                      push    004180DC                         ;  vmupgradehelper.exe
 00401437   . |E8 ECE20000                                     call    0040F728
 0040143C   . |8BCE                                                  mov     ecx, esi
 0040143E   . |E8 CDFDFFFF                                   call    00401210
 00401443   . |85C0                                                   test    eax, eax
 00401445   . |75 4F                                                  jnz     short 00401496
 00401447   . |51                                                      push    ecx
 00401448   . |8BCC                                                   mov     ecx, esp
 0040144A   . |896424 14                                        mov     dword ptr [esp+14], esp
 0040144E   . |68 CC804100                                  push    004180CC                         ;  vmtoolsd.exe
 00401453   . |E8 D0E20000                                  call    0040F728
 00401458   . |8BCE                                               mov     ecx, esi
 0040145A   . |E8 B1FDFFFF                               call    00401210
 0040145F   . |85C0                                                  test    eax, eax
 00401461   . |75 33                                              jnz     short 00401496
 00401463   . |51                                                     push    ecx
 00401464   . |8BCC                                              mov     ecx, esp
 00401466   . |896424 14                                       mov     dword ptr [esp+14], esp
 0040146A   . |68 BC804100                                    push    004180BC                         ;  vmacthlp.exe
 0040146F   . |E8 B4E20000                                    call    0040F728
 00401474   . |8BCE                                                mov     ecx, esi
 00401476   . |E8 95FDFFFF                                    call    00401210
 0040147B   . |85C0                                                 test    eax, eax
 0040147D   . |75 17                                                  jnz     short 00401496
 0040147F   . |8B4C24 14                                        mov     ecx, dword ptr [esp+14]
 00401483   . |5F                                                       pop     edi
 00401484   . |5E                                                      pop     esi
 00401485   . |B8 01000000                                     mov     eax, 1
 0040148A   . |64:890D 00000>                                 mov     dword ptr fs:[0], ecx
 00401491   . |5B                                                     pop     ebx
 00401492   . |83C4 14                                           add     esp, 14
 00401495   . |C3                                                     retn
 00401496   > \6A 00                                              push    0
可以看出,判断的跳转很多而且都基于test eax,eax我们把跳转的几个都改为xor     eax, eax后保存文件即可。
004013AF   .  51            push    ecx
 004013B0   .  8BCC          mov     ecx, esp
 004013B2   .  896424 14     mov     dword ptr [esp+14], esp
 004013B6   .  68 20814100   push    00418120                         ;  vboxtray.exe
 004013BB   .  E8 68E30000   call    0040F728                         ;  判断是否包含该进程
 004013C0   .  8BCE          mov     ecx, esi
 004013C2   .  E8 49FEFFFF   call    00401210
 004013C7      33C0          xor     eax, eax
 004013C9      0F85 C7000000 jnz     00401496
 004013CF   .  51            push    ecx
 004013D0   .  8BCC          mov     ecx, esp
 004013D2   .  896424 14     mov     dword ptr [esp+14], esp
 004013D6   .  68 10814100   push    00418110                         ;  vboxservice.exe
 004013DB   .  E8 48E30000   call    0040F728
 004013E0   .  8BCE          mov     ecx, esi
 004013E2   .  E8 29FEFFFF   call    00401210
 004013E7      33C0          xor     eax, eax
 004013E9      0F85 A7000000 jnz     00401496
 004013EF   .  51            push    ecx
 004013F0   .  8BCC          mov     ecx, esp
 004013F2   .  896424 14     mov     dword ptr [esp+14], esp
 004013F6   .  68 00814100   push    00418100                         ;  vmwareuser.exe
 004013FB   .  E8 28E30000   call    0040F728
 00401400   .  8BCE          mov     ecx, esi
 00401402   .  E8 09FEFFFF   call    00401210
 00401407      33C0          xor     eax, eax
 00401409      0F85 87000000 jnz     00401496
 0040140F   .  51            push    ecx
 00401410   .  8BCC          mov     ecx, esp
 00401412   .  896424 14     mov     dword ptr [esp+14], esp
 00401416   .  68 F0804100   push    004180F0                         ;  vmwaretray.exe
 0040141B   .  E8 08E30000   call    0040F728
 00401420   .  8BCE          mov     ecx, esi
 00401422   .  E8 E9FDFFFF   call    00401210
 00401427      33C0          xor     eax, eax
 00401429      75 6B         jnz     short 00401496
 0040142B   .  51            push    ecx
 0040142C   .  8BCC          mov     ecx, esp
 0040142E   .  896424 14     mov     dword ptr [esp+14], esp
 00401432   .  68 DC804100   push    004180DC                         ;  vmupgradehelper.exe
 00401437   .  E8 ECE20000   call    0040F728
 0040143C   .  8BCE          mov     ecx, esi
 0040143E   .  E8 CDFDFFFF   call    00401210
 00401443      33C0          xor     eax, eax
 00401445      75 4F         jnz     short 00401496
 00401447   .  51            push    ecx
 00401448   .  8BCC          mov     ecx, esp
 0040144A   .  896424 14     mov     dword ptr [esp+14], esp
 0040144E   .  68 CC804100   push    004180CC                         ;  vmtoolsd.exe
 00401453   .  E8 D0E20000   call    0040F728
 00401458   .  8BCE          mov     ecx, esi
 0040145A   .  E8 B1FDFFFF   call    00401210
 0040145F      33C0          xor     eax, eax
 00401461      75 33         jnz     short 00401496
 00401463   .  51            push    ecx
 00401464   .  8BCC          mov     ecx, esp
 00401466   .  896424 14     mov     dword ptr [esp+14], esp
 0040146A   .  68 BC804100   push    004180BC                         ;  vmacthlp.exe
 0040146F   .  E8 B4E20000   call    0040F728
 00401474   .  8BCE          mov     ecx, esi
 00401476   .  E8 95FDFFFF   call    00401210
 0040147B      33C0          xor     eax, eax
 0040147D      75 17         jnz     short 00401496
 0040147F   .  8B4C24 14     mov     ecx, dword ptr [esp+14]
 00401483   .  5F            pop     edi
 00401484   .  5E            pop     esi
 00401485   .  B8 01000000   mov     eax, 1
 0040148A   .  64:890D 00000>mov     dword ptr fs:[0], ecx
 00401491   .  5B            pop     ebx
 00401492   .  83C4 14       add     esp, 14
 00401495   .  C3            retn
反anti后的程序下载:http://files.cnblogs.com/tk091/anti-anti.zip

这个排版看起来太头疼了。
需要看的可以移步:
http://www.cnblogs.com/tk091/archive/2012/04/21/2461158.html

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

哎哟./ 发表于 2012-5-8 20:36
这个教程不错 收藏了 谢谢
她说。 发表于 2012-7-8 17:38
afw333 发表于 2012-7-10 16:38
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-22 11:06

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表