AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi VMWare, VirtualPC, VirtualBox, etc detection
Thema durchsuchen
Ansicht
Themen-Optionen

VMWare, VirtualPC, VirtualBox, etc detection

Offene Frage von "Zacherl"
Ein Thema von Zacherl · begonnen am 12. Sep 2007 · letzter Beitrag vom 13. Sep 2007
Antwort Antwort
Seite 2 von 3     12 3      
Olli
(Gast)

n/a Beiträge
 
#11

Re: VMWare, VirtualPC, VirtualBox, etc detection

  Alt 13. Sep 2007, 11:10
Guckst du in meine Antwort, dann siehst du, daß Jumps nichtmal nötig sind.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#12

Re: VMWare, VirtualPC, VirtualBox, etc detection

  Alt 13. Sep 2007, 12:14
Vielen Dank Oli

Habs jetzt mal so implementiert und es scheint zu funktionieren:

Delphi-Quellcode:
function CheckVirtual: Boolean;

function GetSIDTBaseAddress: DWORD; assembler;
asm
  sub esp, 8
  sidt qword ptr [esp]
  mov eax, dword ptr [esp+2]
  add esp, 8
end;

var
  SIDT: DWORD;
begin
  Result := false;
  SIDT := GetSIDTBaseAddress;

  if SIDT >= $0D0000000 then
  begin
    Result := true;
  end;
  if SIDT >= $0FF000000 then
  begin
    Result := true;
  end;
end;
Allerdings habe ich die Abfrage

Code:
CMP DWORD PTR [opIDT+2], $0F0000000
JLE _check_virtualpc
jetzt rausgelassen. Habe ich sie als

if SIDT <= $0F0000000 then ... implementiert gehabt, allerdings war diese Abfrage auch auf der VM nicht zutreffend, weshalb die VM dann auch nicht erkannt wurde.

Nachtrag 1: Unter VirtualBox mit Windows2000 scheints schonmal nicht zu funktionieren. WinXP Pro und WinXP MCE werden aber als VM erkannt.
Nachtrag 2: Bei Vista wird auch keine VM erkannt. Liegen die BaseAdressen der SIDT bei Vista, 2000, etc in anderen Bereichen?
Angehängte Dateien
Dateityp: zip project1_957.zip (8,7 KB, 19x aufgerufen)
  Mit Zitat antworten Zitat
blackdrake

Registriert seit: 21. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#13

Re: VMWare, VirtualPC, VirtualBox, etc detection

  Alt 13. Sep 2007, 13:10
Hallo.

Hast du diese Publikation auch schon zu Rate gezogen?

http://www.s21sec.com/descargas/vmware-eng.pdf

Gruß
blackdrake
Daniel Marschall
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#14

Re: VMWare, VirtualPC, VirtualBox, etc detection

  Alt 13. Sep 2007, 13:21
Habe ich jetzt mal getan, allerdings haben sämtliche dort vorgestellten Programme das selbe Problem. Sie erkennen unter Win XP wunderbar, wenn es in einer VM läuft. Bei Win2000 oder Vista scheitern sie allerdings

So, habe mal ein Testprogramm angehangen, was auch die SIDT Base ausgibt. Könntet ihr das vielleicht mal auf eurer VM und auf eurem RealSystem testen und jeweils das OS und die Base Adresse angeben?

Meine Messungen:
Code:
RealSystem
--------------
Win XP Home:
2147742720
3132343696
--------------


VirtualBox
--------------
Win XP Pro:
4131451024

Win XP MCE:
4131451024

Win 2000 Pro:
3204509840

Win Vista:
2302734480
--------------
Angehängte Dateien
Dateityp: zip vmtest_444.zip (35,7 KB, 21x aufgerufen)
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#15

Re: VMWare, VirtualPC, VirtualBox, etc detection

  Alt 13. Sep 2007, 15:40
Hexadezimaldarstellung wuerde die Lesbarkeit doch deutlich erhoehen.
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#16

Re: VMWare, VirtualPC, VirtualBox, etc detection

  Alt 13. Sep 2007, 17:35
Jo, sieht mir aus wie abgeschrieben. Entweder Rutkowska von der o.g. Quelle oder umgekehrt. Dumm nur, dass es in jedem Fall Quark war, der da abgeschrieben wurde:

Zitat:
There is only one IDTR register, one GDTR register and one LDTR register, but there are two operating systems being executed: the one of the virtual machine and the one of the native machine. So the VMM needs to change the localization of the different tables. This generates an inconsistency between the values of the registers in the virtual machine and the values in the native machine.
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#17

Re: VMWare, VirtualPC, VirtualBox, etc detection

  Alt 13. Sep 2007, 17:48
Zacherl, hast du eigentlich mal versucht die STR-Methode aus dem Paper, auf welches dich Blackdrake verwiesen hat, zu testen?
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#18

Re: VMWare, VirtualPC, VirtualBox, etc detection

  Alt 13. Sep 2007, 18:15
Diese Methode habe ich ehrlich gesagt nicht ganz verstanden, bzw habe mangels fehlender Assembler Kentnisse keine Idee wie ich das umsetzen kann.

Die IDT Methode stammt von hier:
http://www.mnin.org/?page=vmmdetect&left=off

Allerdings funktioniert sie außer bei Vista bemerkenswert gut.
  Mit Zitat antworten Zitat
blackdrake

Registriert seit: 21. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#19

Re: VMWare, VirtualPC, VirtualBox, etc detection

  Alt 13. Sep 2007, 18:37
Hallo.

Bringt es dir etwas, wenn ich dein Testprogramm auf Windows 95b, 98SE und 2000 SP4 laufen lasse, jedoch ohne Vergleich zu einer VMM?

PS: Die Publikation, zu der ich hingewiesen hatte, weist auf folgendes Beispielprojekt hin, welches jedoch scheinbar nur VMWare erkennt. Ich weiß nicht, ob du das auch gesehen hast. Der Link ist hier: http://www.trapkit.de/research/vmm/scoopydoo/index.html .

In diesem C-Projekt ist folgender Abschnitt eventuell interessant:

Delphi-Quellcode:
/* scoopy - A VMware Fingerprinter
 * Windows Version v1.0
 *
 * tested with:
 * VMware 3.2.0 build-2230 and Win2000/XP
 * VMware 4.0.0 build-4460 and Win2000/XP/2003
 *
 * -tk, 2003
 * [url]www.trapkit.de[/url]
 */

#include <stdio.h>

/* Common base values for fingerprinting.
 * Windows 2003 Server has the same base
 * values as Windows XP.
 */
#define VMWARE3_IDT         0xFFC6A370
#define VMWARE4_IDT         0xFFC17800
#define NATIVE_IDT_WINXP   0x8003F400   // same for Windows 2003 Server
#define NATIVE_IDT_WIN2000   0x80036400

#define VMWARE3_LDT         0xDEAD3fa8
#define VMWARE4_LDT         0xDEAD4058
#define NATIVE_LDT_WINXP   0xDEAD0000 // same for Windows 2003 Server
#define NATIVE_LDT_WIN2000   0xDEAD0000

#define VMWARE3_GDT         0xFFC05000
#define VMWARE4_GDT         0xFFC07000
#define NATIVE_GDT_WINXP   0x8003F000 // same for Windows 2003 Server
#define NATIVE_GDT_WIN2000   0x80036000
Weiß jetzt aber nicht, ob IDT und GDT dir hilft, wenn du nach IDTR suchst.

Gruß
blackdrake
Daniel Marschall
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#20

Re: VMWare, VirtualPC, VirtualBox, etc detection

  Alt 13. Sep 2007, 18:41
Wenn du das Testprogramm aus dem anderen Thread auf Win2000 startest würde mir das helfen

Diesen source von scoopy habe ich auch schon angesehen, allerdings hat er das selbe Problem, wie der Code den ich momentan verwende als auch Olis SIDTcon. Olis Programm erkennt eine Vista VM nicht als VM und mein Code erkennt ein richtiges Vista nicht als richtig

Das IDT ist wichtig für mich. In dem neuen Code den ich verwende prüfe ich ob die IDT base in einer bestimmten range liegt. Wenn das nicht der Fall ist, ist man vermutlich in einer VM. Das Problem ist nur, dass ab Vista diese range wohl nach hinten hin vergrößert wurde. Mit den Tests will ich jetzt gucken wie weit nach hinten dies sein könnte.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz