Delphi-PRAXiS
Seite 2 von 6     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Bitte testen! IDT base Adresse auslesen + VMM detection (https://www.delphipraxis.net/99543-bitte-testen-idt-base-adresse-auslesen-vmm-detection.html)

Leonard 13. Sep 2007 16:46

Re: Bitte testen! IDT base Adresse auslesen + VMM detection
 
Ich habe einen P4 HT. Mit der neuen Version wird immer die gleiche Adresse angezeigt.

Die Muhkuh 13. Sep 2007 16:47

Re: Bitte testen! IDT base Adresse auslesen + VMM detection
 
Code:
---------------------------
Info
---------------------------
E386D400
---------------------------
OK  
---------------------------
Code:
---------------------------
Info
---------------------------
[Probably] running IN virtual maschine!   
---------------------------
OK  
---------------------------

freak4fun 13. Sep 2007 16:48

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  
---------------------------

Zacherl 13. Sep 2007 16:49

Re: Bitte testen! IDT base Adresse auslesen + VMM detection
 
@Leonard: Welcher Wert? Der erste oder der zweite?
@freak4fun: Jap die Zahlen bitte :)

Leonard 13. Sep 2007 16:51

Re: Bitte testen! IDT base Adresse auslesen + VMM detection
 
Zitat:

Zitat von Zacherl
@Leonard: Welcher Wert? Der erste oder der zweite?

Die erste, also 80 03 64 00.

Edit:
Was ich noch gar nicht erwähnt habe, ich habe hier keine VM...

Zacherl 13. Sep 2007 16:57

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:
WinVista Ultimate
---------------------------
83ABF400
E386D400 
---------------------------

WinVista Buisness
81AFF400
---------------------------

WinVista Home Premium
---------------------------
83D20400
---------------------------
Ich brauche allerdings noch viel mehr Werte um eine Hypothese aufzustellen, in welchem Bereich die Werte unter Vista liegen dürfen.

Olli 13. Sep 2007 17:39

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:

Zitat von Olli
So if the IDT base address is at a higher position than 0xD0000000, she concludes to be inside a virtual machine. This conclusion is wrong, even if we would assume for a moment that her claim about the relocated GDTR/IDTR - see the foreword - are right. But despite that, the problem would already arise on multi-processor machines where a test run could give reasonably high addresses for one processor and "normal" ones for the other. Since the redpill.c does not take this into account the result is per-se unreliable. I have also seen some papers that attempted to call the instruction a number of times under the assumption that the result would show an even distribution between the processors. In my opinion this is also not quite the best approach, given that one can easily set the affinity of the process without special privilege requirements.

http://blog.assarbad.net/wp-content/..._colorless.pdf

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.

Zacherl 13. Sep 2007 18:02

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?

freak4fun 13. Sep 2007 19:34

Re: Bitte testen! IDT base Adresse auslesen + VMM detection
 
Hallo, klar kann ich nochmal testen! ;)

Code:
---------------------------
CPU 1     
---------------------------
Base adress:  

81AFF400
---------------------------
OK  
---------------------------
Code:
---------------------------
CPU 2     
---------------------------
Base adress:  

82648960
---------------------------
OK  
---------------------------
MfG
freak :firejump:

Zacherl 13. Sep 2007 19:45

Re: Bitte testen! IDT base Adresse auslesen + VMM detection
 
Danke dir nochmal :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:35 Uhr.
Seite 2 von 6     12 34     Letzte »    

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