这个非常基本的计划的Segfault

时间:2018-03-07 09:01:08

标签: assembly nasm shellcode

看看这个非常基本的shell代码:

mov     rax, 1      ; syscall write
mov     rdi, 1      ; fd=1 (stdout)

; push this string on stack: 'hello wd', '\n', 0
push    0x000000000000A
mov     rcx, 'hello wd'
push    rcx
mov     rsi,rsp     ; rsi points on string
mov     rdx,10      ; string size

syscall

这个shell代码只是在stdout上打印一个字符串。 它工作正常,显示消息,但在消息引发后我有一个段错误。

以下是我编译的方式:

nasm -f elf64 s2.asm 
objcopy -O binary --only-section=.text s2.o s2.bin
gcc s2.o -m64 -nostartfiles

如果我发布./a.out

,我会看到
hello wd
Segmentation Fault

我只是想了解什么是错的

由于

0 个答案:

没有答案