Da ich das mit den Opcodes nicht ganz verstehe habe ich es mal so versucht, weiß aber nicht, ob das ganze noch funktioniert. Im normalen System kommt eine
AV und unter VirtualBox keine. Klingt eigentlich nicht schlecht oder?
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
opIDT: Pointer;
procedure _vmware_detected;
begin
Caption := '
VMWare';
end;
procedure _virtualpc_detected;
begin
Caption := '
VirtualPC';
end;
procedure _check_virtualpc;
asm
CMP DWORD PTR [opIDT+2], $0D0000000
JGE _virtualpc_detected
end;
begin
asm
SIDT FWORD PTR opIDT
CMP DWORD PTR [opIDT+2], $0F0000000
JLE _check_virtualpc
CMP DWORD PTR [opIDT+2], 0FF000000h
JGE _vmware_detected
end;
end;
Allerdings werden weder _vmware_detected noch _virtualpc_detected aufgerufen.