知道为什么会导致段错误吗? mov byte [esi +9],bl
我使用调试器逐行完成它,并且在执行该行后会出现segfault。
我猜这意味着它试图访问内存中的某些内容,而不是它想要的内容。
以下是整个代码:
global _start
section .text
_start:
jmp short call_shellcode
shellcode:
pop esi
xor ebx, ebx
mov byte [esi +9], bl
mov dword [esi +10], esi
mov dword [esi +14], ebx
lea ebx, [esi]
lea ecx, [esi +10]
lea edx, [esi +14]
xor eax, eax
mov al, 0xb
int 0x80
call_shellcode:
call shellcode
message db "/bin/bashABBBBCCCC"
答案 0 :(得分:0)
默认情况下,文本部分不可写,数据部分不可执行。