* 서니나타스의 바이너리문제 11번이다!

프로그램을 실행하면 아래와 같다.




(프로그램 실행)



올리디버거를 이용하여 문제를 해결하였다.
참조된 문자열을 먼저 확인하였다.



(문자열)



내가 찾고싶은 인증키 문자열이 있는 쪽의 함수를 찾아야하므로 Authkey 문자열이 존재하는 위치로 달려가서 그 해당 함수에 BP를 설치한다.



(BP 설치)



그 후 달린다!




(입력)



입력은 알아보기 쉽게 D 여러개 입력!

그리고 아래로 쭈욱 가니 뭔가의 문자열들이 있고 이 문자열들 하나씩 함수에 들어간다.
같은 함수이다.


(뭔가 작업하는 부분)


일단은 큰그림을 보기위해 넘어간다.!
이러한 문자열들이 하나씩 함수에 들어가구나 정도만 파악하였다.

아래를 보니 내가 보고싶은 문자열 Congratulation 문자열 바로 전에 분기문이 존재하고 
그 분기문 위에 어떤 함수를 호출하고 있는게 보인다.



(분기문)



아마 이 함수에서 결정이 나는 듯 하다.
확인!


(비교 과정)


들어가보니 뭔가를 비교하고 있다.

EAX와 EDX를 비교하고 있는데 이 두 값을 확인해봐야겠다.



(레지스터 확인)



아하.! 내가 입력한 값과 어떤 문자열을 비교하고 있다.

위의 함수들을 확인해본 결과 해당 문자열들을 이리저리 배치한 문자열이었다.

이 문자열을 입력값으로 입력하여 실행하였더니?




(인증키 등장)



인증키가 등장하였다.

이 값을 인증값에 넣었더니 문제 해결!



(문제 해결!)


+ Recent posts