【发布时间】:2017-03-11 22:12:31
【问题描述】:
我正在尝试触发 sys_execve (X86_64)。
section .data
file db "/bin/sh",0
section .text
global _start
_start:
mov rax, 59
mov rdi, file
lea rsi, [file]
mov rdx, 0
syscall
它给出分段错误
我做错了什么?
我什至尝试将其放入 C 源代码中:
int main(void)
{
char shellcode[] =
"\xb8\x3b\x00\x00\x00"
"\x48\xbf\xd0\x00\x60\x00\x00"
"\x00\x00\x00"
"\x48\x8d\x34\x25\xd0\x00\x60"
"\x00"
"\xba\x00\x00\x00\x00"
"\x0f\x05";
(*(void (*)()) shellcode)();
return 0;
}
这也给了我一个分段错误...
【问题讨论】:
-
lea rsi, [file]错误。 -
多发一些标签怎么样?
-
@Jester:我认为 execve 需要字符串的指针作为第二个参数?
-
好吧,你能给我一个提示吗?我将 rsi 设置为 0,但它不起作用。我也试过这个:img.wonderhowto.com/img/original/96/83/63565574166578/0/… 并且外壳不会生成...
标签: linux assembly nasm x86-64 shellcode