Wie gibt Windows XP Text auf der Konsole aus
-
Hallo, ich versuche gerade herauszufinden wie mein PC Text ausgibt.
Also habe ich die Funktion WriteConsole gedebugg und jetzt bin ich an dieser Stelle angekommen:
7C92228B 56 PUSH ESI 7C92228C 56 PUSH ESI 7C92228D FF35 D4E1987C PUSH DWORD PTR DS:[7C98E1D4] 7C922293 E8 46B8FFFF CALL ntdll.ZwRequestWaitReplyPort
So sieht CALL ntdll.ZwRequestWaitReplyPort intern aus:
7C91DADE > B8 C8000000 MOV EAX,0C8 7C91DAE3 BA 0003FE7F MOV EDX,7FFE0300 7C91DAE8 FF12 CALL DWORD PTR DS:[EDX] 7C91DAEA C2 0C00 RETN 0C
Und so sieht CALL DWORD PTR DS:[EDX] intern aus:
7C91E510 > 8BD4 MOV EDX,ESP 7C91E512 0F34 SYSENTER 7C91E514 > C3 RETN
Und da bin ich auch schon bei meinem Problem, der PC führt SYSENTER aus und schon sehe ich meinen Text auf der Konsole.
Ich hab gelesen das durch SYSENTER mein Programm auf den Kernel zugreifft, wie kann ich sehe was da jetzt genau passiert?
SYSENTER makieren und Enter drücken geht leider nicht. (Ich verwenden den OllyDebugger [Ring 3 debugger] )
Kann ich mit hilfe eines Kerneldebuggers sehen was SYSENTER da jetzt genau macht oder würde das auch nicht gehen?
-
TextAusgeber schrieb:
Kann ich mit hilfe eines Kerneldebuggers sehen was SYSENTER da jetzt genau macht
ja
-
Nimm erstmal Ida, ( http://www.hex-rays.com/products/ida/6.2/index.shtml ), und schau wie weit du damit kommst. Das dürfte für deine Zwecke ausreichen.
Neuere Kerneldebugger für Windows sind hauptsächlich Remotedebugger oder werfen "nur" ein Memorydump aus. Wenn du die Dumps lesen kannst, Ok, falls nicht, ist Ida eine große Hilfe.
-
Mit IDA stehe ich jetzt vor dem selben Problem wie mit Olly.
Ich sehe den SYSENTER Befehl aber kann nicht rausfinden was danach intern passiert.
Ich glaub ich schau mir mal WinDBG an da gibt es laut der MSDN einen Kernel Debugger.
-
Und nicht vergessen in
http://www.intel.com/content/dam/doc/manual/64-ia-32-architectures-software-developer-vol-2a-2b-instruction-set-a-z-manual.pdfreinzugucken.