AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Unit zur VM detection + Testprogramm
Thema durchsuchen
Ansicht
Themen-Optionen

Unit zur VM detection + Testprogramm

Ein Thema von Zacherl · begonnen am 23. Sep 2007 · letzter Beitrag vom 11. Jul 2010
Antwort Antwort
Seite 2 von 5     12 34     Letzte »    
Benutzerbild von Zacherl
Zacherl
Registriert seit: 3. Sep 2004
Hey,

zusammen mit blackdrake habe ich eine Unit entwickelt die sehr zuverlässig erkennen kann, ob das eigene Programm auf einer virtuellen Maschiene ausgeführt wird. Dabei sind sogar Fingerprints möglich, die eine Identifizierung der verschiedenen Emulations Software zulässt.

Delphi-Quellcode:
type
  TVMFingerprint = (fpUnknown, fpVMWare, fpVirtualPC, fpVirtualBox, fpNative,
    fpWINE, fpParallelsWorkstation, fpQEMU);

type
  TxDTEntry = record
    GDTBase: DWord;
    IDTBase: DWord;
    LDTRBase: DWord;
    GDTLimit: Word;
    IDTLimit: Word;
  end;

type
  TxDTArray = array of TxDTEntry;
  TFingerprintArray = array of TVMFingerprint;

// Prüft auf eine VM, wobei angegeben werden kann, ob WinE als VM gehandhabt werden soll
function IsVirtualMachine(const DetectWINE: Boolean = true): Boolean;
// Gibt einen Fingerprint anhand eines TxDTEntrys zurück
function GetVMFingerprint(xDTEntry: TxDTEntry): TVMFingerPrint; overload;
// Gibt einen Fingerprint für eine CPU zurück
function GetVMFingerprint(CPU: Cardinal): TVMFingerPrint; overload;
// Konvertiert einen Fingerprint in einen String
function VMFingerprintToStr(FP: TVMFingerprint): String;
// Gibt einen TxDTEntry für eine CPU zurück
function GetxDTEntry(CPU: Cardinal): TxDTEntry;
// Gibt ein Array of TxDTEntry für alle CPUs zurück
function GetxDTArray(var Output: TxDTArray): Integer;
// Gibt ein Array of TVMFingerprint für alle CPUs zurück
function GetFingerprintArray(var Output: TFingerprintArray): Integer;
Das ganze Funktioniert über verschiedene Tabellen, die für jede CPU existieren. Die GDT, die IDT und die LDT. Anhand deren Base Adressen und ihrer Größe (Limits) werden die VMs ermittelt.

Unterstützte Betriebssysteme:
* Win95 .. WinME
* WinNT .. WinVista

Unterstützt werden momentan:
* VirtualPC, VMWare, VirtualBox, ParallelsWorkstation und WinE.
* QEMU (Testphase)

Geplante Features:
* Sandbox detection

Download: www.viathinksoft.de/download.php?id=125

Im Archiv findet sich die Unit, der Source für das Testprogramm und eine Excel Tabelle mit unseren Messergebnissen. Wir würden uns über Feedback und weitere Messergebnisse freuen!

Gruß Zacherl
 
Benutzerbild von freak4fun
freak4fun

 
Delphi 10.2 Tokyo Starter
 
#11
  Alt 24. Sep 2007, 21:37
System auf Laptop unter dem der VMServer läuft ist WinVista. In der VM läuft XP. [Siehe Link in PN an mich]
  Mit Zitat antworten Zitat
Benutzerbild von MagicAndre1981
MagicAndre1981

 
Delphi 7 Enterprise
 
#12
  Alt 24. Sep 2007, 22:00
Zitat von Zacherl:
Ein Win9x Test wäre sehr nett von dir ..
das hatte ich mir schon gedacht und hab es probiert. Aber die Installation von WinME bleibt bei 10% hängen. Ich probier dann nochmal Win98 oder Win95.
André
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

 
Delphi 10.2 Tokyo Starter
 
#13
  Alt 24. Sep 2007, 22:11
Okey, danke für deine Mühe Bei VirtualBox funktioniert leider der Monitor Treiber von Win98 nicht, so dass ich damit auch nicht testen kann =/
  Mit Zitat antworten Zitat
Benutzerbild von MagicAndre1981
MagicAndre1981

 
Delphi 7 Enterprise
 
#14
  Alt 25. Sep 2007, 01:00
so hier gibts das Ergebnis doch noch. Musste es einfach eine Weile laufen lassen, dann ging das Setup von ME doch noch.
Miniaturansicht angehängter Grafiken
parallels_winme_168.png  
André
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

 
Delphi 10.2 Tokyo Starter
 
#15
  Alt 25. Sep 2007, 09:37
Danke dir recht herzlich Scheint zu funktionieren die Parallels Detection.
  Mit Zitat antworten Zitat
Benutzerbild von MagicAndre1981
MagicAndre1981

 
Delphi 7 Enterprise
 
#16
  Alt 25. Sep 2007, 12:35
ok, wie siehts mit QEMU aus? Das müsst ihr auch noch einbauen.
André
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

 
Delphi 10.2 Tokyo Starter
 
#17
  Alt 25. Sep 2007, 14:55
Kannte ich gar nicht Habs mir mal angesehen .. ist das nur für Linux Systeme? Also kann das nur auf Linux Hosts installiert werden?

Oder hat jemand diese VM parat, der bereit währe ein Paar Tests durchzuführen?

[Edit: Ah geht wohle auf Windows, allerdings ist es nicht kompatibel zu VirtualBoxs Images. Hat Jemand VMWare und könnte das kurz testen. Hier gibt es QEMU als Zip Archiv vollkommen ohne Installation. In der BAT muss man nur den Pfad zum VMWare Image angeben. http://www.zdnet.de/downloads/prg/8/...8Y_is-wc.html]
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

 
Delphi 10.2 Tokyo Starter
 
#18
  Alt 25. Sep 2007, 16:42
Ich gucks mir mal an ...

Edit: Bekomme das auf die schnelle nicht mit meiner VM zum Laufen.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

 
Delphi 10.2 Tokyo Starter
 
#19
  Alt 25. Sep 2007, 17:25
Das ist nett
  Mit Zitat antworten Zitat
Benutzerbild von GuenterS
GuenterS

 
Turbo Delphi für Win32
 
#20
  Alt 25. Sep 2007, 18:29
Qemu gibts eigentlich auch für Windows so weit ich weiß.
Günter
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 5     12 34     Letzte »    


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 14:53 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