[英]execve shellcode linux segmentation fault
我試圖運行這個shellcode,但它拋出了我:“分段錯誤”錯誤shellcode如下:
shellcode.asm:
global _start
_start:
jmp short ca
doit:
pop ebx
xor eax, eax
cdq
mov byte [ebx+7], al
mov long [ebx+8], ebx
mov long [ebx+12], eax
lea ecx, [ebx+8]
mov byte al, 0x0b
int 0x80
ca:
call doit
db '/bin/sh'
我用:'nasm -f elf shellcode.asm' 編譯它並將它鏈接到:' ld -m elf_i386 -s -o shellcode shellcode.o
我認為錯誤是當我使用 mov [ebx+x], al/eax/ebx 因為當我從代碼中刪除它時沒有錯誤
謝謝
您的問題是默認情況下.text
部分不可寫。 最簡單的方法是將您的代碼放入標記為可寫的新自定義部分。 在 asm 文件的頂部添加這一行:
section .shellcode progbits alloc exec write align=16
您還可以將-N
開關傳遞給鏈接器。
或者,您可以重寫 shellcode,以便它使用堆棧來創建參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.