一个很简单的汇编程序的很奇怪的问题……
section .text
jmp short two
one:
pop ebx
xor eax,eax
mov [ebx+7],al
mov [ebx+8],ebx
mov [ebx+12],eax
lea ecx,[ebx+8]
lea edx,[ebx+12]
mov eax,11
int 0x80
two:
call one
db "/bin/shXAAAABBBB"
相信各位仁兄对这种东西肯定很熟悉了,我检查了很多遍都没发现这段汇编代码有什么错,但运行时总是显示Segmentation Fault……我只好用gdb调试,结果发现是在mov [ebx+7],al这句出错,我看了一下这时的ebx和al都没有问题……然后我只好单步调试,但是运行到mov [ebx+7],al这句时却没有这个错误了……一切顺利!我真是被郁闷到了,哪位仁兄能告诉我这到底什么怎么回事?
Linux环境,Nasm编译,ld连接。