如何覆盖程序集中的字节?

时间:2015-12-06 15:04:28

标签: linux assembly x86 nasm

我想覆盖中断向量编号,所以我试着这样做:

section .text

global _start

_start:

mov al, 0x7f
inc al
mov byte [ override + 1 ] , al

mov eax, 1
mov ebx, 1

override: 
int 0x20

此代码应该只调用syscall出口。但是当我执行它时,我得到了一个Segmentation故障。

我不明白为什么,因为[override + 1]应该是0x20的地址,al是1字节大而且我也对字节进行了类型转换,因此它们的大小相同。

GDB说它发生在这一行:

  

mov byte [override + 1],al

这里有什么问题?怎么解决?

我像这样编译和链接:

nasm -f elf test.asm
ld -m elf_i386 -o test test.o

0 个答案:

没有答案