최근 리버싱 공부를 시작했다. 
책 한권을 끝낸 기념으로 리버싱문제를 풀어볼 것이다.

이제 내가 풀이에 접근 가능한 영역이 리버싱이 추가됬다는 사실에 기쁘다!!! :)

써니나타스의 Web 문제만 풀었었는데 이제 Binary 문제도 풀어주마!

9번 문제를 풀 것이다!



(Binary 9번문제)


파일을 다운받으니 Project1 이라는 실행파일이 보인다.




(실행 파일)



올리디버거로 열어본다!





(올리 디버거 실행)



Main 함수에 찾아가는 방법이 여러가지 있겠지만 문자열을 이용해 찾아보겠다.



(사용된 문자열)


사용된 문자열들을 보니 Congratulation ??? 
느낌이 딱 왔다. 어찌저찌 조건을 만족하면 이 문장을 출력해주는구나.

실제 실행파일을 실행해보면 입력하는 란이 나오고 거기에 입력하여 프로그램을 실행시키는 방식이다.
어떤 특정 값(키)를 입력하면 이 문구가 나오는가보다.

냉큼 그 자리로 달려가 Main 함수 시작부분에 BP를 설치해준다.



(BP 설치)


그리고 여기까지 달려준다.

중간에 퍼즈 당하면서 창이 하나 뜨고 입력하라고 나온다. 입력하지 않으면 실행이 안되는데 아마 입력하고 클릭을 누르는 순간 내가 생각하기에 main 함수인 저 함수로 넘어오는 가 보다! 라고 생각했다.
여튼! 우리의 목적은 축하 메세지를 받는 것이므로 이 함수를 분석해야하는 것은 맞다! 메인함수든 뭐든!

입력 값은 D를 몇개 적어주었다. 헥스값으로 보면 0x44 이기 때문에 쉽게 눈에 띌거 같아서 D 몇개를 넣었다.



(D 입력)



이 함수의 맥락을 보니 분기문 전에 CALL을 하는데 여기서 분기문이 갈라지는 조건을 체크하는 듯 했다.



(분기문 전 CALL)



이 함수 안으로 들어가서 봐야겠다.



(분기문 전 CALL 함수)



보니보니 EAX 값을 ESI 에 넣고, EDX를 EDI 넣고 비교한다.

EAX와 EDX에는..!



(레지스터)



내가 입력한 D 여러개와 어떤 문자열이 들어있었다. 
아! 이 문자열과 비교를?



(문자열 입력)



적혀있는 문자열을 적어보았다.



(축하메세지)



???

축하메세지가...
이 키를 입력하면 인증에 성공한다.


'WarGame > 500 Project' 카테고리의 다른 글

(39/500) Suninatas - Binary(11)  (0) 2017.06.27
(38/500) Suninatas - Binary(10)  (0) 2017.06.27
(36/500) Lord of the BOF - death_knight  (0) 2017.06.27
(35/500) Lord of the BOF - xavius  (0) 2017.06.25
(34/500) Lord of the BOF - nightmare  (0) 2017.06.23

+ Recent posts