exploitable.asm 1.2 KB

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