공부/리버싱핵심원리

11장 Lena's Reversing for Newbies

리버싱 핵심원리 1부 끝이다.

어느덧 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