어느덧 1부 마지막이다. 쌩 기초를 다 끝내려면 아직 먼 것 같다.
📖 1) 문제 파악
우선 먼저 실행해보자.
모든 성가신 잔소리를 없애고 registration code를 찾으라고 한다.
MsgBox가 매우 많이 나올 것 같은 예감이다.
그냥 평범하게 생긴 것 같다. asdf로 Regist 해보자.
잘 실행되는 것은 확인이 된다. x32dbg로 뜯어보도록 하자. (성공한다면, IDA로도 뜯어보자.)
저번에 이런 코드를 봤던 것 같다. 간접호출 아니었나 ??
(00401162 주소에서 ThunRTMain 함수가 보인다.)
Registration Code를 어떻게 찾을 지 생각해보자. 먼저 문자열들을 보자
프로그램을 실행했을 때 확인할 수 있는 문자열들이 나온다.
해당 주소로 가보자.
004028BD 주소 바로 밑 004028C2 주소에서 __vbaStrCmp() 함수를 호출하고 있음을 알 수 있다.
__vbaStrCmp함수는 VB에서 문자열을 비교하는 함수이다.
즉 한 줄 위에서 PUSH한 [EBP-58]과 "I'mlena151"을 비교하는 것이다.
이 RegCode를 이용해서 프로그램을 다시 실행해보자.
📖 2) 문제 해결
문제를 해결했다.
'공부 > 리버싱핵심원리' 카테고리의 다른 글
13장 PE File Format (0) | 2022.03.05 |
---|---|
10장 함수 호출 규약 (Calling Convention) (2) | 2021.08.22 |
9장 Process Explorer (0) | 2021.08.21 |
8장 abex' crackme #2 (abexcm2) - Retry (0) | 2021.05.21 |
8장 abex' crackme #2 (abexcm2) (1) | 2021.01.23 |