이번에는 Lenas Reversing for Newbies라는 파일을 리버싱 실습을 사용해보겠습니다.
첨부한 파일을 실행하면 다음과 같은 화면이 나옵니다.
해석을 하면 Nags를 제거하고 올바른 등록코드를 찾으라는군요.
Nag는 현재 나오는 창을 말하는거고 이 메시지 창을 없애라는군요. 확인을 누르면 다음과 같은 창이 나옵니다.
등록 코드를 입력하라고 나왔는데 일단은 모르니깐 Register me!를 클릭 해보겠습니다.
뭐 역시나 안되는군요.
올리 디버거를 사용해서 일단 분석을 해봅시다.
시작화면은 다음과 같습니다. 일단은 여태껏 했던것 처럼 우클릭을 해서 Search for-Referenced Stirng을 찾아가는 법도 있지만 여기서 다른 방법을 써봅시다.
우클릭 후 Search for-Intermodular calls를 선택해봅시다.
창이 다음과 같이 나오는데 일단 Dest name으로 정렬하면 MSVBVM5 0.rtcMsgBox라고 4개의 항목이 있습니다.
여기서 rtcMsgBox는 비주얼 베이직에서 메시지 박스를 가르키는데 4개가 있다는것은 4개의 창으로 구성되었다는 것을 알 수 있습니다. 4개의 창은 Nag창, 등록 코드 입력하는창,코드가 다를때 나오는 창, 코드가 맞을때 나오는 창 이렇게 구성됩니다.
여기에 BP를 설정해서 하나하나 살펴보면 원할하게 리버싱을 할 수 있습니다. 일단은 등록코드를 찾는거 부터 해봅시다.
00402CFE에 BP를 설치 했습니다. 이곳이 Nag창이 나오는 곳의 BP입니다. 일단은 시작하면 이곳을 지나는 것을 알수 있겠네요
다음 Search for - Referenced Stirng을 해서 등록코드가 틀렸을 시 나오는 RegCode is worng!이 문구를 찾으면 다음 위치에 있다는 것을 알수 있습니다.
거기서 조금만 위로 올려보면 다음과 같은 문구가 있습니다.
친절하게 I'mlena151 이라고 써있네요. 아마 저기있는 문구와 비교했을때 참이면 성공을 거짓이면 실패 문구를 띄워주는 것 같습니다.
찾은 값을 그대로 입력해주면
성광 메시지 창이 나오네요.
두번째로는 Nag 창을 없애봅시다.
아까 Nag창이 나오는 곳에 BP를 설채했습니다. 이 함수의 시작점으로 쭉 올리다 보면
00402C17에서 시작하는 것을 볼 수 있습니다. 이 함수가 진행되면서 Nag창이 나오게 되는데 여기서 바로 Return을 해버리면 이 창이 나오지 않곘죠
저기 PUSH EBP를 RETN 4로 바꾸면 더이상 Nag창이 나오지 않게됩니다.
'리버스 엔지니어링' 카테고리의 다른 글
PE 재배치 -1 (0) | 2018.05.14 |
---|---|
IAT란? -3. notepad.exe를 이용한 실습 (0) | 2018.05.07 |
IAT란? -2 IMAGE_IMPORT_DESCRIPTOR (0) | 2018.01.19 |
IAT란? -1 DLL (0) | 2018.01.18 |
RVA to RAW (0) | 2018.01.18 |