我是装配编程的新手。我在以下程序中遇到了分段错误。任何帮助,将不胜感激。 该程序基本上使用execv系统调用执行bash shell(系统调用no 11)。
.text
.globl _start
_start:
jmp callshell
shellcode:
popl %esi
xorl %eax, %eax
movb $0,%al
movb %al,0x9(%esi)
movl %esi,0xa(%esi)
movl %eax,0xe(%esi)
movb $11, %al
movl %esi, %ebx
leal 0xa(%esi),%ecx
leal 0xe(%esi),%edx
int $0x80
callshell:
call shellcode
shellvariables:
.ascii "/bin/bashABBBBCCCC"
答案 0 :(得分:0)
这些组合十六进制前缀的含义是什么?
int $0x80
DS是不是指向你的.TEXT部分?