sys_execve (X86_64)를 트리거하려고합니다.nasm 어셈블리 sys_execve/bin/sh
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
그것은 분할 오류 내가 잘못 뭐하는 거지
을 준다? ...
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;
}
이것은 또한 나에게 분할 오류를 제공합니다 당신은에 의해 포인터로 문자열 /bin/sh
역 참조로 커널을 일으키는
'레아 RSI, [파일]'잘못된 것입니다. – Jester
더 많은 태그를 스팸으로 보내는 것은 어떻습니까? – Olaf
@Jester : execve에 두 번째 매개 변수로 문자열의 포인터가 필요하다고 생각 했습니까? – int80