T
ciever2k schrieb:
Tatsache, ich habe nun wieder gepoppt (nicht auf die zweideutigkeit achten ) und es geht ohne Probleme!
Danke!
Aber wieso ist das so?
Du holst den alten ebp vom Stack und auch aufm Stack liegt die Rückkehradresse. Wenn der Stack nun verschoben ist, weil du vergessen hast, einen Wert wieder abzuholen, dann rufst du um einen vorschobene Werte vom Stack, u.a. auch EBP und die Rückkehradresse und das Programm läuft sonstwohin.
Könnte ich das auch so machen, das ich dann einfach esp oder ebp neu setze?
Das muss ja irgentwie mit dennen zusammen hängen, oder nicht?
Ja, könntest du, sofern du esp udn ebp unabhängig irgendwo speicherst. Macht man aber nicht, weils nicht sehr tauglich ist für z.B. Rekursionen. Üblich ists halt mit push ebp, mov ebp, esp und mit pop ebp und ret zu arbeiten. Man muss halt nur gucken, dass der Stakc so wie er am Anfang manipuliert wurde auch am Ende wieder zurückgestellt wird.