늘모자란, 개발 :: [wargame.kr] Challenge 10 - EASY_CrackMe

늘모자란, 개발

Simple Reverse Engineering Challenge.


웹해킹이 아니라 리버싱이라고 선언해오고 있다. 리버싱은 경험이 거의 없기 때문에 걱정이 좀 된다. 얼마나 걸릴지도 잘 모르겠고...

문제에 들어가면 crackme를 받을 수 있다. crackme는 리버싱 초보들한테 어디 구간을 어떻게 해보라 하고 주는 튜토리얼 비슷한 느낌으로 알고 있는데, 나한테 딱 맞는것 같다.

프로그램은 심플한테 뭘 입력하던간에 패스코드로 인식하게 해서 점프하도록 만들어야할 것 같다.
그러기위해서는 무얼해야할까. 툴이 필요하다. OllyDbg를 사용하기로 하자.

나는 이벤트 원리 방식은 잘 모르겠지만 일단 string을 따라가면 뭐가 될 것 같았다.
참고로, 64비트에서는 2.00 이하는 잘 동작하지 않는다. 2.01 버전을 다운받아야 제대로 스트링이 보인다.


프로그램 자체에 http 주소가 있는걸 보니 제대로 키를 입력하면 서버에 키를 요청하는 방법인가보다.

문자열중에 _my_b 와 birth가 있는걸 보니 키에 얘네가 들어갈거라 생각해본다.
조금 더 비주얼하게 보기 위해서 IDA로 저 주소를 따라가서 봤다



밑엔 비슷하게 birth 가 있다. 대강 봐도 _my_bbirth 가 될순 없을것 같으니 뒤에 문장은 _my_birth 라고 생각하자.
그럼 앞이 문젠데

cmp eax, 45Ah

를 __wtoi 를 콜해서 위 값을 비교한다.
cmp는 compare이고 그럼 결국 앞에 붙은값과 45Ah를 비교한다는것 같은데 여기서 h는 hex를 의미한다고 한다.
즉, 0x45A와 일치해야되는 모양이다.

0x45A를 변환해보니까
>>> 0x45A
1114


1114라고 한다.

고로,

1114_my_birth
이거나
_my_birth1114

인데 둘중에 답이 있었다.

어째 제대로 한게 아니라 뛰어가다가 개구리 치인꼴이다.
리버싱은 꼭 제대로 공부하겠다고 스스로와 약속을 하며..

2016/06/08 14:29 2016/06/08 14:29