%% Funktion exploitableFunction 0x0000000000400586 <+0>: push %rbp 0x0000000000400587 <+1>: mov %rsp,%rbp 0x000000000040058a <+4>: sub $0x20,%rsp 0x000000000040058e <+8>: lea -0x20(%rbp),%rax 0x0000000000400592 <+12>: mov %rax,%rdi 0x0000000000400595 <+15>: callq 0x400480 0x000000000040059a <+20>: lea -0x20(%rbp),%rax 0x000000000040059e <+24>: mov %rax,%rdi 0x00000000004005a1 <+27>: callq 0x400450 0x00000000004005a6 <+32>: leaveq 0x00000000004005a7 <+33>: retq %% Funktion main % Funktionsprolog: Sichern des alten Base Pointers im Stack. Der alte Stack % Pointer wird zum neuen Base Pointer 0x00000000004005a8 <+0>: push %rbp 0x00000000004005a9 <+1>: mov %rsp,%rbp % Aufrufen der Funktion "exploitableFunction" 0x00000000004005ac <+4>: callq 0x400586 % Kopieren der Konstante "0" in das EAX-Register 0x00000000004005b1 <+9>: mov $0x0,%eax % Kopieren des Wertes von [%rsp] in das Base Pointer Register 0x00000000004005b6 <+14>: pop %rbp % Laden des Wertes von [%rsp], hinzufügen von 8 zu dem Wert in [%rsp], und % Sprung zur geladenen Adresse 0x00000000004005b7 <+15>: retq