NtQueryInformationProcess in einer x86-Anwendung auf einem x64-Betriebssystem
-
Hallo,
ich habe ein Problem mit der Funktion NtQueryInformationProcess, die ich hauptsächlich dazu benutze, die PEB Adresse anderer Prozesse herauszufinden. Wenn ich mein Programm für x86 kompiliere und auf meinem x64-Betriebssystem ausführe, liefert es nur noch die PEB Adressen anderer x86-Prozesse. Gibt es eine Möglichkeit, das x86-Programm so zu (umzu)schreiben, dass es auf x64 als auch auf x86 Prozesse anwendbar ist?
Vielen Dank!
-
Ich glaube, dass ich auf etwas gestoßen bin, das genau mein Problem beschreibt. Jedoch verstehe ich den Lösungsansatz nicht. Hier ein Link: *klick*
Wenn mir das jemand auf Deutsch erklären könnte (vor allem die Lösung)...
-
DerDieter schrieb:
Gibt es eine Möglichkeit, das x86-Programm so zu (umzu)schreiben, dass es auf x64 als auch auf x86 Prozesse anwendbar ist?
Nein. Du musst schon ein x64 Programm erstellen...
-
winprogger.com schrieb:
PEB of the process is obviously found in PebBaseAddress. However the PEB of a 64-bit process lies at a 64-bit address and since PROCESS_BASIC_INFORMATION for 32-bit applications only has space for 32-bit pointer, how can the 64Bit PEB address be returned to a 32-bit application ? If the 64-bit PEB had no high bits set, then technically the 64-bit PEB address could fit into 32-bits without losing any of the address bits. wow64 solves this problem simply by setting PebBaseAddress to NULL in all cases
Was für ein Sch***! Wenn wow64 doch nur die lower bits anstelle von überhaupt nichts zurückgeben würde...