본문 바로가기

해킹공부/pwnable.kr

codemap

exe파일을 리버싱하는 문제같다.

간만에 윈도우 함 써보자는 마음으로 접속했다.

 

nc 0 9021에 접속하면 뭘 물어볼거니까 대답 잘 해주란다.

일단 접속해보자

 

 

2번째, 3번째로 큰 chunk값을 물어본다.

인제 codemap.exe파일을 실행해보자

 

 

여기서 중요한건 말로는 random size로 한다고 하는데 백만번 해봐도 같은 chunk size에 같은 string이 나온다.

그럼 매번 똑같이 할당될테니 여러번 돌려서 찾아보면 되겠다.

 

일단 문제에서

(hint: see the information inside EAX,EBX when 0x403E65 is executed)

힌트를 줬으니 유심히 함 보자

 

 

힌트에서 말한 부분이다.

0x403E65가 암만 봐도 없었는데 페이징한 가상주소라 맨 뒤 2byte만 같다.

저 주소에서 멈췄을 때 EAX랑 EBX를 보면

EAX가 chunk size, EBX가 chunk에 들어가는 string이다.

근데 아까 chunk 1000개 한다고....

여기까지 알아내고 검색해보니 ida를 사용해 codemap이란걸 사용해야 된다고 한다.

 

 

엥......

검색한대로 암만 해봐도 안된다.

결국 chunk 1000개 보기로 했다.

그래도 stack에 최대값을 계속 갱신해서 그나마 편...했다고 생각했다.

 

njqIVnYuX7NcwLc
roKBkoIZGMUKrMb

최대값이 나오기 전에 이 2개가 second, third였다.

 

 

안됨ㅠㅠㅠ

생각해보니 최대값이 나왔다고 해서 roKBkoIZGMUKrMb의 chunk값보다 큰 값이 나오지 말란 법이 없다.

결국 최대값이 나온 뒤로도 한참을 F9를 눌러댔다.

 

roKBkoIZGMUKrMb

2ckbnDUabcsMA2s

간신히 안지나쳤다.

 

 

그냥 roKBkoIZGMUKrMb값보다 큰 애가 있길래 해봤는데 풀렸다.

출제자가 양심은 있는 사람이었나보다.

'해킹공부 > pwnable.kr' 카테고리의 다른 글

cmd1  (0) 2017.09.07
shellshock  (0) 2017.09.07
blackjack  (0) 2017.08.30
passcode  (0) 2017.08.30
lotto  (0) 2017.08.30