War doch bestimmt Absicht :P
Aber geiler Smiley für diesen Kontext /no1
Ich habe mir gerade einmal die Zeichnung deines überarbeiteten Videos angeschaut:
In deinem Beispiel ist der Begriff 'springen' nicht falsch, auch wenn du es nicht tust...
Wenn du die Trampolinfunktion aufrufst, springt diese zum restlichen Teil der originalen Funktion und am Ende dieser wird beim Return wieder zu deiner gesprungen, in der nur noch ein Befehl folgt, der dahin springt, von wo MessageBoxA aufgerufen wurde (+ 5 wegen des relativen JMPs).
Der Stack wird also unnötig 2x mehr benutzt und ein Opcode ist auch zuviel...
Bei einem JMP und Parameter verändern (über Inline ASM) anstatt CALL und Parameter alle erneut pushen würde von deiner Funktion zur Trampolinfunktion, die zur originalen springt, von wo aus das Return den Instruction Pointer dann direkt auf den Caller setzt, gesprungen werden.
[ Was mir gerade mal so aufgefallen ist... ]
Der Compiler scheint das automatisch zu optimieren, und nicht zu knapp...
Das, was ich oben geschrieben habe, bringt ja nur etwas, wenn nach dem Sprung zur Trampolinfunktion nichts mehr kommen soll.
Da der Compiler aber automatisch den Stack updatet und dann zur Trampolinfunktion springt (anstatt noch einmal alles zu pushen und die Funktion dann mit einem CALL aufzurufen), ist es nichtig, was ich oben geschrieben habe, da es halt automatisch passiert...
Falls jemand mein Posting nicht versteht, weil es voll scheiße ist, einfach alles überlesen :x