虚拟机通用检测代码 C/C++

admin 6月前 96

代码如下,请大家检测下 我个人测试可以100%检测出虚拟机

当然,代码里面没有考虑线程转换,实际使用的时候需要考虑进去

编译好的程序可以从

http://www.huibian.com/anti-vm.rar

下载获取

另外也请大家测试的时候把对话框得到的数值 说一下

我p2CPU下结果为20h pm740下为2Bh

;@echo off
;set Masm32Dir=d:\masm\masm32
;set include=%Masm32Dir%\Include;%include%
;set lib=%Masm32Dir%\lib;%lib%
;set path=%Masm32Dir%\Bin;%Masm32Dir%
;@echo on
;ml /c /coff /Fo %0.obj %0
;Link /subsystem:windows /SECTION:.text,WRE %0.obj
;@echo off
;del %0.obj
;pause
;exit
        .586
        .model flat, stdcall
        option casemap :none
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;anti-vm.asm  www.huibian.com icyfox
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
include     windows.inc
include     user32.inc
includelib  user32.lib
include     kernel32.inc
includelib  kernel32.lib
 
    .data?
ShowText    db 10h dup (?)
.data
    align 4             ;双字对齐
    Caption     db '大概用的虚拟机运行的',0
    Digit       db '0123456789ABCDEF',0
.code
 
ShowBuffer proc @Buffer,@Len            ;显示所读出的信息
    pushad
 
    ;把数据转换成16进制的形式
    mov  esi,@Buffer        ;数据
    mov  edi,offset ShowText    ;转换后的数据
    mov  ebx,offset Digit
    mov  ecx,0
    xor  eax,eax
computeAgain:
    cmp  @Len,0
    jz   endCompute
    dec  @Len
    mov  al,[esi]
    push eax
    shr  eax,4          ;高4位
    mov  al,[ebx+eax]
    mov  byte ptr[edi],al
    inc  edi
    pop  eax
    and  eax,0fH            ;低4位
    mov  al,[ebx+eax]
    mov  byte ptr[edi],al
    inc  edi
    mov  byte ptr[edi],' '      ;空格
    inc  edi
    inc  esi
    inc  ecx
    cmp  ecx,16
    jnz  computeAgain
    xor  ecx,ecx
    mov  byte ptr[edi-1],13     ;回车
    jmp  computeAgain
 
endCompute:
    mov  byte ptr[edi],0
    ;显示
    invoke  MessageBoxA,NULL,offset ShowText,NULL,MB_OK
    popad
    ret
ShowBuffer endp
 
cpuSD   dd  0
main:
 
    rdtsc
    mov edi,eax     ;将第一次的结果保存起来
    rdtsc
    sub eax,edi     ;向减得到“间隔周期数”
    mov cpuSD,eax
 
.if eax>100h || eax<10h
    invoke  MessageBoxA,NULL,offset Caption,NULL,MB_OK
.endif
 
invoke  ShowBuffer,addr cpuSD,4
invoke  ExitProcess,0
end main

少客联盟- 版权声明 1、本主题所有言论和图片纯属会员个人意见,与少客联盟立场无关。
2、本站所有主题由该帖子作者发表,该帖子作者admin少客联盟享有帖子相关版权。
3、少客联盟管理员和版主有权不事先通知发贴者而删除本文。
4、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者admin少客联盟的同意。
5、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任。
6、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责。
7、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意。
8、官方反馈邮箱:chinasuc@chinasuc.cn


上一篇:Egg 和 Webpack 项目搭建实践
下一篇:细说arm反类ollvm混淆-基本思想
Whatever is worth doing is worth doing well. juvenile hacker league
最新回复 (0)
    • 少客联盟
      2
        登录 注册 QQ登录(停用)
返回