이번에 풀어볼 녀석

클릭하면 설치화면이 뜨며

설치 후 처음 시작할 때, 프로그램은 약간의 시간이 걸리며, 유일한 ID number를 적용중이라고 문구가 뜬다.

 

 

설치가 완료되면

PRO 버전이 깔린다
그리고 Register Key를 입력하라는 창이 뜬다.

프로그램이 등록되었는지 여부를 확인하는 작업을 한다는 것을 알았고, 이를 검증하는 코드가 있을 것이다.

분석을 시작해보자

 

PEiD로 확인

확인한 결과, 해당 프로그램은 Microsoft Visual Basic으로 컴파일된 파일이라는 점을 알았다.

 

VB(Visual Basic)에서는 프로그램 등록 여부 확인 작업DLL의 API에서 수행된다고 한다.

 

VB에서 쓰이는 가장 유명한 비교 API 함수는 아래와 같다.

 

__vbaVarTstEq

__vbaVarTstNe

__vbaVarCmpEq

__vbaStrCmp

__vbaStrComp

__vbaStrCompVar

 

 

 

먼저 함수에 BP를 거는 작업을 해보기 위해 이를 찾아본다.

Ctrl+N으로 Import 함수 찾아보기
찾았다

위에서 봤던 함수 6가지 중 4가지가 이 프로그램에 쓰였다. 

먼저, vbaVarTstEq API함수부터 살펴보겠다.

 

+) 함수를 호출하기 전에 스택을 통해서 필요한 Parameter를 전달하는데,

__vbaVarTstEq함수는 EDX, EAX를 스택에 push해서 파라미터로 쓴다고 한다.

 

 

BP 설정

BP를 걸어준 뒤, F9로 실행한다.

 

BP 설정 후 해당 구간까지 실행

 

F8로 한줄한줄 실행하다가 Serial Key로 보이는 값을 찾았다!

F8로 한줄한줄 실행하다가 Serial Key로 보이는 값을 찾았다.

재실행해본다.

 

 

아까 봤던 key 값 입력

아까 key 값 같이 생겼던 문자열을 입력한 후 OK 버튼을 눌렀더니

Registration이 성공적으로 이뤄졌다는 메세지가 뜬다.

 

 

이 이후로는 등록하라는 메세지 창이 뜨지 않고 잘 실행된다.

 

+ Recent posts