Beim Eintreten der
Exception werden alle Register gerettet. Wenn du in deine Exceptionbehandlung kommst liegt bei [ESP+4] oder [ESP+8] ein Record in dem alle Register stehen.
Edit: bei [ESP+4] (bei [ESP+8] liegt ja der Stackpointer wie er vor dem "try" war) und bei [ESP] liegen die
Exception-Informationen (
Exception-Code, etc.) in einem Record.
Also bei [ESP+4] sollte ein Pointer auf folgenden Record liegen:
Zitat:
+0 context flags
(used when calling GetThreadContext)
DEBUG REGISTERS
+4 debug register #0
+8 debug register #1
+C debug register #2
+10 debug register #3
+14 debug register #6
+18 debug register #7
FLOATING POINT / MMX registers
+1C ControlWord
+20 StatusWord
+24 TagWord
+28 ErrorOffset
+2C ErrorSelector
+30 DataOffset
+34 DataSelector
+38 FP registers x 8 (10 bytes each)
+88 Cr0NpxState
SEGMENT REGISTERS
+8C gs register
+90 fs register
+94 es register
+98 ds register
ORDINARY REGISTERS
+9C edi register
+A0 esi register
+A4 ebx register
+A8 edx register
+AC ecx register
+B0 eax register
CONTROL REGISTERS
+B4 ebp register
+B8 eip register
+BC cs register
+C0 eflags register
+C4 esp register
+C8 ss register
Infos von
hier
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.