

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


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

확인한 결과, 해당 프로그램은 Microsoft Visual Basic으로 컴파일된 파일이라는 점을 알았다.
VB(Visual Basic)에서는 프로그램 등록 여부 확인 작업이 DLL의 API에서 수행된다고 한다.
VB에서 쓰이는 가장 유명한 비교 API 함수는 아래와 같다.
__vbaVarTstEq
__vbaVarTstNe
__vbaVarCmpEq
__vbaStrCmp
__vbaStrComp
__vbaStrCompVar
먼저 함수에 BP를 거는 작업을 해보기 위해 이를 찾아본다.


위에서 봤던 함수 6가지 중 4가지가 이 프로그램에 쓰였다.
먼저, vbaVarTstEq API함수부터 살펴보겠다.
+) 함수를 호출하기 전에 스택을 통해서 필요한 Parameter를 전달하는데,
__vbaVarTstEq함수는 EDX, EAX를 스택에 push해서 파라미터로 쓴다고 한다.

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


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

아까 key 값 같이 생겼던 문자열을 입력한 후 OK 버튼을 눌렀더니
Registration이 성공적으로 이뤄졌다는 메세지가 뜬다.

'Study > Reversing' 카테고리의 다른 글
Lena 8번 풀이/Rena's Reversing Tutorial 08 (1) | 2021.11.22 |
---|---|
Lena 7번 풀이/Rena's Reversing Tutorial 07 (0) | 2021.11.22 |
Lena 6번 풀이/Rena's Reversing Tutorial 06 (0) | 2021.11.22 |
Malware 프로그램 분석 2 (0) | 2021.11.17 |
Malware 프로그램 분석 1 (0) | 2021.11.16 |