۱۹-تير-۱۳۸۷, ۱۲:۰۷:۰۱
با سلام
همون طور که میدونین تکنسینهای شرکتهای انتی معمولا برای اینکه یه ویروس رو انالیز کنن روی ماشینهای مجازی اجرا میکنن که معروفترین اونها virtual machine و VMWare هست ویروس نیمدا که معکوس ادمین هست از قابلیتهاش این بود که VMWare رو تشخیص میداد و اگه اونو توی این ماشین مجازی اجرا میکردید هیچ عکس العمل خرابکارانهای از خودش نشون نمیداد و این تکنیک یکی از تکنیکهاییه که یک ویروس معمولی رو از یک ویروس همشمند جدا میکنه
و این کد برای شناسایی VMWare
شناسایی Virtual Machine
همون طور که میدونین تکنسینهای شرکتهای انتی معمولا برای اینکه یه ویروس رو انالیز کنن روی ماشینهای مجازی اجرا میکنن که معروفترین اونها virtual machine و VMWare هست ویروس نیمدا که معکوس ادمین هست از قابلیتهاش این بود که VMWare رو تشخیص میداد و اگه اونو توی این ماشین مجازی اجرا میکردید هیچ عکس العمل خرابکارانهای از خودش نشون نمیداد و این تکنیک یکی از تکنیکهاییه که یک ویروس معمولی رو از یک ویروس همشمند جدا میکنه
و این کد برای شناسایی VMWare
کد:
function InVMware: Boolean;
asm
XOR EAX, EAX
PUSH OFFSET @@Handler
PUSH DWORD PTR FS:[EAX]
MOV DWORD PTR FS:[EAX], ESP
MOV EAX, 564D5868h
MOV EBX, 3c6cf712h
MOV ECX, 0Ah
MOV DX, 5658h
IN EAX, DX
MOV EAX, True
JMP @@NotHandle
@@Handler:
MOV EAX, [ESP+$C]
MOV TContext(EAX).EIP, OFFSET @@Handled
XOR EAX, EAX
RET
@@Handled:
XOR EAX, EAX
@@NotHandle:
XOR EBX, EBX
POP DWORD PTR FS:[EBX]
ADD ESP, 4
end;
شناسایی Virtual Machine
کد:
function IsInVPC: boolean; assembler;
asm
push ebp
mov ecx, offset @@exception_handler
mov ebp, esp
push ebx
push ecx
push dword ptr fs:[0]
mov dword ptr fs:[0], esp
mov ebx, 0 // flag
mov eax, 1 // VPC function number
// call VPC
db 00Fh, 03Fh, 007h, 00Bh
mov eax, dword ptr ss:[esp]
mov dword ptr fs:[0], eax
add esp, 8
test ebx, ebx
setz al
lea esp, dword ptr ss:[ebp-4]
mov ebx, dword ptr ss:[esp]
mov ebp, dword ptr ss:[esp+4]
add esp, 8
jmp @@ret
@@exception_handler:
mov ecx, [esp+0Ch]
mov dword ptr [ecx+0A4h], -1
add dword ptr [ecx+0B8h], 4
xor eax, eax
ret
@@ret:
end;