본문 바로가기

Wargame, CTF/protostar

stack1

소스코드

인자가 실행파일 포함 2개 이상 되어야하고

modified는 0x61626364로 바뀌어야 함

gdb 분석

cmp(비교)에서 eax와 0x61626364를 비교하는데

그건 modified기 때문에 그위에 rbp-0x4가 modified의 위치

strcpy는 2개의 인자가필요

rsi(src index)에서 rdi(dst index)로 복사

즉, rdi가 buffer의 위치

buffer는 rbp-0x50

 

0x50-0x4만큼 채워야지 modified에 도달 할 수 있다.

'a'를 76개 채우고 0x61626364를 채우면 성공

main+79에 bp를 걸고 pattern으로 계산해도 76이 나온다

하지만

리틀 엔디안 방식이기 떄문에

\x64\x63\x62\x61(dcba)로 넣어야 한다.

abcd로 넣었을 때
dcba로 넣었을 때

 

'Wargame, CTF > protostar' 카테고리의 다른 글

stack5  (0) 2019.08.26
stack4  (0) 2019.08.25
stack3  (0) 2019.08.25
stack2  (0) 2019.08.25
stack0  (0) 2019.08.24