![]() |
Bitte testen! IDT base Adresse auslesen + VMM detection
Liste der Anhänge anzeigen (Anzahl: 1)
Hey,
in Anlehnung an meinen Thread wie man virtuelle Maschienen mittels der SIDT base address erkennen kann habe ich aufgrund von Problemen unter allen emulierten Systemen außer XP eine weitere Variante versucht. Die IDT base Adresse. Diese Methode erkennt zuverlässig alle XP, Win2000 und Vista unter VirtualBox. Das einzige Problem: Es erkennt ein richtiges Vista (und vermutlich ein richtiges Win2000) auch als virtuelle Maschine. Nun brauche ich möglichst viele Testwerte von Vista und Win2000 Systemen. Ob innerhalb einer VM oder außerhalb ist mir egal. Am besten beides. Folgendes Testprogramm zeigt euch die IDT base address in Hexadezimaler Zahl an und eine vorläufige Hypothese ob das System eine VM ist oder nicht. (Klapt halt nur richtig unter XP) Bitte postet einfach das verwendete Betriebsystem und die Adresse der IDT die angezeigt wird. Vielen Dank |
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Hallo,
auf meinem Win2000 bekomme ich folgendes Ergebnis:
Code:
80 03 64 00
Code:
mfg Leonard
[Probably] NOT running in virtual maschine!
|
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Danke dir, damit kann ich Win2000 jetzt sogar schon ausschließen :) Bleibt also nur noch Vista zu testen. Scheinbar wurde der Bereich in dem die IDT liegen kann von XP auf Vista geändert.
|
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Code:
---------------------------
Info --------------------------- E386D400 --------------------------- OK ---------------------------
Code:
Windows Vista Ultimate 32-Bit, läuft NICHT in einer VM ;-)
---------------------------
Info --------------------------- [Probably] running IN virtual maschine! --------------------------- OK --------------------------- |
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Ich habs eben nochmal gestartet und da zeigt das Programm eine andere Adresse.
Code:
Der Text bleibt der gleiche.
89 05 77 E8
|
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Code:
---------------------------
Info --------------------------- 82648960 --------------------------- OK ---------------------------
Code:
Laptop Windows Vista Business 32Bit aus der *.zip gestartet.
---------------------------
Info --------------------------- [Probably] running IN virtual maschine! --------------------------- OK ---------------------------
Code:
---------------------------
Info --------------------------- 81AFF400 --------------------------- OK ---------------------------
Code:
Laptop Windows Vista Business 32Bit normal gestartet.
---------------------------
Info --------------------------- [Probably] running IN virtual maschine! --------------------------- OK --------------------------- Ich benutze keine VM. MfG freak |
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Habt ihr beiden Dualcore Systeme? Habe jetzt mal eine Version hochgeladen die die AffinityMask direkt auf die erste CPU setzt. Nun sollte auch ein einheitlicher Wert angezeigt werden.
|
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Ja, den E6600
|
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Ja! AMD Turion 64 X2 M TL-56 1,8Ghz :mrgreen:
MfG freak |
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Ich hab mal eine neue Version hochgeladen .. bitte nocheinmal testen :)
|
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Ich habe einen P4 HT. Mit der neuen Version wird immer die gleiche Adresse angezeigt.
|
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Code:
---------------------------
Info --------------------------- E386D400 --------------------------- OK ---------------------------
Code:
---------------------------
Info --------------------------- [Probably] running IN virtual maschine! --------------------------- OK --------------------------- |
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Gleiche Ergebnis. Running IN VM. Brauchst die Zahlen?
Code:
---------------------------
Info --------------------------- 81AFF400 --------------------------- OK ---------------------------
Code:
---------------------------
Info --------------------------- [Probably] running IN virtual maschine! --------------------------- OK --------------------------- |
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
@Leonard: Welcher Wert? Der erste oder der zweite?
@freak4fun: Jap die Zahlen bitte :) |
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Zitat:
Edit: Was ich noch gar nicht erwähnt habe, ich habe hier keine VM... |
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Bei dem Wert sollte auch keine VM angezeigt werden .. Bei allen Systemen <= XP ist der Bereich in dem die IDT liegen kann für die erste CPU zwischen 80000000 und 80FFFFFF. Ab Vista scheint sich das leider geändert zu haben =/
Die bisherigen Werte sind:
Code:
Ich brauche allerdings noch viel mehr Werte um eine Hypothese aufzustellen, in welchem Bereich die Werte unter Vista liegen dürfen.
WinVista Ultimate
--------------------------- 83ABF400 E386D400 --------------------------- WinVista Buisness 81AFF400 --------------------------- WinVista Home Premium --------------------------- 83D20400 --------------------------- |
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Ja, was soll ich sagen ... da hat wohl einer doch nicht meinen ganzen Artikel gelesen. Weil ja Englisch eine schwere Sprache ist, zitiere ich mich hier einfach mal selber auf Englisch:
Zitat:
![]() Ja, Zacherl, habe mal in dein Programm geschaut und da leider nichts davon gesehen, dass du auf diese Problematik eingehst. Die Ergebnisse hier sind also in etwa so sinnvoll wie Lottozahlen. Neue Variante? Warum gibst du ihnen nicht einfach SIDTcon? Ist kleiner, macht es fuer Kernelmode und Usermode und beachtet die Affinitaet. |
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Das Programm von mir setzt die Affinity Mask auf die erste CPU. Daher wird doch auch nur die Base Adresse der IDT von CPU1 angezeigt. Bei meinen Tests hatte eigentlich immer die erste CPU die "normalen" Werte. Oder ist das nicht immer so?
Edit: Naja hab mal zur Sicherheit eine Version hochgeladen die alle CPUs durchgeht. @Oli: Kann man sagen, dass wenn mindestens ein Wert der CPU "normal" ist es sich nicht um eine VM handelt? |
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Hallo, klar kann ich nochmal testen! ;)
Code:
---------------------------
CPU 1 --------------------------- Base adress: 81AFF400 --------------------------- OK ---------------------------
Code:
MfG
---------------------------
CPU 2 --------------------------- Base adress: 82648960 --------------------------- OK --------------------------- freak :firejump: |
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Danke dir nochmal :)
|
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Code:
---------------------------
CPU 1 --------------------------- Base adress: E386D400 --------------------------- OK ---------------------------
Code:
---------------------------
CPU 2 --------------------------- Base adress: C61D98E0 --------------------------- OK --------------------------- |
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Danke dir :) Du hast komische Werte :mrgreen: Dein Wert fällt vollkommen aus der Reihe:
Zitat:
|
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Ich war schon immer anders, als die anderen :mrgreen:
|
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
:D hast du irgendwas an Antiviren Software oder Firewalls installiert, welche eventuell die Tabelle hooken könnten?
|
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Zitat:
Wichtiger wäre es wohl, eine Kombination aus GDT, LDT und IDT zusammen mit TSS zu benutzen und eben die CPUs zu beachten. Seit VMWare 5.5 (oder 6?) kannst du zumindest nicht mehr davon ausgehen, daß nur eine CPU in einer VM verfügbar ist. Abgesehen davon solltest du den Humbug, der in den Papers von Rutkowska und dem welches Blackdrake ausgegraben hat (was dank der Schreibfehler deutlich unprofessionell auf mich wirkt) nicht zu ernstnehmen. Was ich meine ist der Teil wo gesagt wird, daß die IDT reloziert werden muß, weil es sonst zum Konflikt kommen würde. Ich konnte in meinem Paper eindeutig nachweisen, daß diese Annahme falsch ist, auch wenn ich prinzipiell nicht unbedingt eine bessere Idee habe. Allerdings ist SIDT eben keine privilegierte Instruktion, so daß der VMM nicht wissen kann wann sie ausgeführt wird - es sei denn diese Instruktion wird komplett emuliert ... was wiederum die Relokation der IDT (usw.) überflüssig machen würde. Zitat:
Da aber deine Absicht nur ist, den Anwender drauf hinzuweisen, daß er es nicht in einer VM laufen lassen soll, weil es rechenintensiv ist, sollte es ja kein Problem sein, wenn du auch mal innerhalb einer VM diesen Hinweis nicht anzeigst. Schlimmer wäre der umgekehrte Fall, wo du einen Nutzer auf einer nativen Maschine auf diese Sachen hinweist, weil du es fälschlicherweise als VM erkennst. |
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Danke für deine ausführliche Antwort :)
Zitat:
Trotzdem bitte noch weiter testen. |
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Guten Morgen,
hier nochmal meine Werte mit der aktuellen Version.
Code:
---------------------------
CPU 1 --------------------------- Base adress: 80036400 --------------------------- OK ---------------------------
Code:
mfg Leonard
---------------------------
CPU 2 --------------------------- Base adress: 890577E8 --------------------------- OK --------------------------- |
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Danke dir :) Die Werte der ersten CPU passen auch ins Konzepzt .. scheine aber den Bereich auf 80000000 - 84000000 erweitern zu müssen.
|
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Hallo.
Haben dir die Informationen von ![]() Gruß blackdrake |
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Ja danke dir, die Infos waren sehr nützlich. Hier mal ein neues Testprogramm, welches jetzt eine optimale Erkennungsrate haben sollte.
(Die LDT ist bisher noch 0 da mir der Code zum Auslesen fehlt. Siehe: ![]() [Edit: Neustes Programm im ersten Beitrag] |
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Hallo.
Sag einfach bescheid, wann dein Testprogramm den dritten Wert erkennen kann. Dann führe ich das Testprogramm gerne nocheinmal auf den virtuellen PCs und in meiner Rechnerfarm aus. Freut mich, dass ich dir bei diesem Problem etwas weiterhelfen kann. Gruß blackdrake |
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Liste der Anhänge anzeigen (Anzahl: 1)
So also die LDT Base kann ich immer noch nicht auslesen, aber die ist eigentlich mehr Interessehalber. Was wichtig ist ist der LDTR. Auf normalen Systemen sollte dieser 0xDEAD0000 sein.
|
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Ja. Unter XP auf Single Core und mein Turion Duo sagt auch ja bei beiden Kernen unter Vista. :)
@blackdrake: WO arbeitest du denn, das du ne Serverfarm hast? o.O MfG freak |
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Ich habe nichts von Serverfarm geredet. Meine 5 PCs, darunter mein erster PC (Win 95, 166 MHz), der immer noch intakt ist und zur Emulation alter Spiele verwendet wird, die auf VPCs nicht laufen. Und auf diesen Systemen habe ich Win 95, 98, 2000 und XP. Das ist meine Rechnerfarm.
|
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Und die Schlussfolgerung, ob das Programm auf einer VM ausgeführt wird oder nicht war auch immer korrekt?
[Edit: Könnte unter Win9x nicht stimmen, da dort noch die LDT verwendet wird. Ich prüfe momentan, ob der LDT Descriptor = 0 (LDT Descriptor = Letzte 2 Bytes) ist. Dies ist auf NT basierten System immer der Fall, solange sie nicht emuliert werden] |
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Delphi-Quellcode:
Gruß
Test mit xDTInfo, Compiliert: 16. September 2007, 22:46:06
Daniel Marschall, LDA CPU Count GDT IDT LDTR VM-Detektion ------------------------------------------------------------------------------------------------------------------- Windows XP NATIVE 1 0x8003F0000 (1023) 0x8003F400 (2047) 0xDEAD0000 Negativ (OK) Windows XP MVPC 2007 1 ??? ??? ??? ??? Windows 2K NATIVE 1 0x80036000 (1023) 0x80036400 (2047) 0xDEAD0000 Negativ (OK) Windows 2K MVPC 2007 1 0xBDF98D00 (65535) 0xBDF98500 (2047) 0xDEADFFA8 Positiv (OK) Windows ME NATIVE 1 ??? ??? ??? ??? Windows ME MVPC 2007 1 0xE8398D00 (65535) 0xE8398500 (2047) 0xDEADFFA8 Positiv (OK) * Windows 98 SE NATIVE 1 0xC0F59000 (4095) 0x800AC000 (767) 0xDEAD00B8 Positiv (FEHLER!) ** Windows 98 SE MVPC 2007 1 0xE8398D00 (65535) 0xE8398500 (2047) 0xDEADFFA8 Positiv (OK) Windows 95b NATIVE 1 (Wird nachgereicht) Windows 95b MVPC 2007 1 0xE8398D00 (65535) 0xE8398500 (2047) 0xDEADFFA8 Positiv (OK) * Ein Dienst des MS VPC 2007 ist bei dem ersten Öffnen der Anwendung abgestürzt ** Bei deinem alten VM-Testprogramm (siehe anderer Thread) war die Prüfung noch unter Win98 SE NATIVE OK! Wie du siehst, ist nicht bei allen nativen Systemen der LDTR 0xDEAD0000. Wenn ich dir durch Systeminformationen oder die Ausführung weiterer Testprogramme behilflich sein kann, sag bescheid. blackdrake |
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Das sieht doch schonmal sehr gut aus :) Bin gespannt auf die Werte der Nativen Win9x Systeme :D Denke da wird fälschlicherweise eine VM erkannt. Muss ich noch fixen.
Vielen Dank dir schonmal blackdrake :) |
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Code:
Windows XP in einer VM von VMWare auf Laptop mit Turion Duo. Er wird als Duo von WIndows erkannt, aber keine Ahnung ob er auch genutzt wird. xD
CPU count: 1
Processor # 1 ------------- GDT: FFC07000 <16687> IDT: FFC18000 < 2047> LDT: 00000000 < 0> This application is [probably] running IN a virtual maschine! MfG freak |
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Hey freak,
testest du nochmal die neuste Version aus diesem Beitrag: ![]() Kann den ersten Post leider nicht mehr editieren.. Gruß |
Re: Bitte testen! IDT base Adresse auslesen + VMM detection
Hallo.
Heute reiche ich das Win95-Ergebnis noch nach. Bei Windows 98 schlägt der Test fehl, siehe oben. Gruß blackdrake |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz