我在使用一个小程序生成shell时遇到了一些问题。现在,我的程序在尝试修改行movb $0,7(%ebx)
上的字符串时会出现段错误
我认为问题是我试图修改文本段中的代码,而不是堆栈上的代码。我认为ebx是堆栈的基本指针,我应该可以在那里修改它。这条线有什么问题?我的代码如下。感谢
jmp payload+0x28
payload:
movl $0xb,%eax
popl %ebx
movb $0,7(%ebx)
movl %ebx,0x8(%ebx)
movl $0x0,0xc(%ebx)
leal 0x8(%ebx),%ecx
leal 0xc(%ebx),%edx
int $0x80
movl $1,%eax
movl $0,%ebx
int $0x80
call payload
.string "/bin/sh"