Dus ik heb een aantal tutorials over assembly gevolgd en de instructeur compileert de volgende code:
; hello3.asm probeert de codepositie onafhankelijk te makensection .textglobal _start_start:; wis de registers we gaan needxor eax, eaxxor ebx, ebxxor ecx, ecxxor edx, edx; write (int fd, char * msg, unsigned int len) mov al, 4mov bl, 1; Owned !!! = 4f, 77,6e, 65,64,21,21,21; push!,!,!, Dpush 0x21212164; push e, n, w, O push 0x656e774fmov ecx, espmov dl, 8int 0x80; exit (int ret) mov al, 1xor ebx, ebxint 0x80
Merk op dat het bericht Owned !!!
in de stapel wordt gepusht in plaats van in de .text
segment. Dus als ik het probeer uit te voeren, krijg ik een Segment Fault
-fout!
Als ik in plaats daarvan het bericht in de .text
laat staan, dan, alles werkt prima.
De commando's die ik gebruikte om uit te voeren:
$ > nasm -f elf64 hello4.asm $ > ld -o hallo hallo4.o
Om het even welke ideeën?