СообЧа > Дельфинарий > Определение - запущено в Virtual PC

 

Определение - запущено в Virtual PC

{
   Эта функция может быть использована для определения что ваша программа запущена в Connectrix's Virtual PC
}

function running_inside_vpc: 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 // флаг
   mov eax, 1 // номер функции VPC

   // 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 // EBX = -1 -> не запущен, ebx = 0 -> запущен
   add dword ptr [ecx+0B8h], 4
   xor eax, eax
   ret
   @@ret:
end;



Рейтинг@Mail.ru Rambler's Top100 Яндекс цитирования

Спасибо, что посетили наш сайт.
Copyright © 2000-2008 Сообщество Чайников
Контактная информация  О проекте