簡體   English   中英

execve shellcode linux 分段錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM