我试图在64位代码中调用
当我尝试将第二个参数留空时,我的代码可以正常工作,但是当我添加它时,我会收到以下错误:
/bin/bash
时传递参数。我无法使用.data
部分,这对我来说有点棘手。我已经查看了各种代码示例,但没有一个很清晰(我是初学者)。我想要调用的是/bin/bash -c id
。当我尝试将第二个参数留空时,我的代码可以正常工作,但是当我添加它时,我会收到以下错误:
execve("/bin/bash", [0x7361622f6e69622f, 0x646920632d2068, 0x7361622f6e69622f, 0x68], NULL) = -1 EFAULT (Bad address)
编译命令: nasm -f elf64 -o test.o test.asm;ld -o test test.o
section .text
global _start
_start:
mov rax,59
lea rdi,[rel bin]
lea rsi,[rel msg]
syscall
align 8
msg db '/bin/bash -c /bin/id',0
bin db '/bin/bash',0