-
[Lenas Reversing for Newbies] 09Wargame/Lenas Reversing 2021. 2. 2. 23:11
1. 프로그램 실행
첨부된 파일을 이용해 PC2AM2_PRO를 설치한 후, PEiD로 열어보자.
PEiD 해당 프로그램은 Visual Basic으로 작성되었음을 알 수 있다. 일반적으로 C로 작성된 프로그램들과는 달리 VB 전용 엔진인 MSUBUM60.dll을 사용하여, VB API()를 알아야 분석하기 수월하다고 한다. Lenas 강의에서도 OllyDbg를 이용한 분석이 썩 깔끔하지는 않아 따로 SmartCheck이라는 툴을 이용해 디버깅하기도 한다.
Lenas 강의에서는 다음과 같은 VB API에 초점을 맞춰 분석을 진행한다.
__vbaVarTstEq, __vbaVarTstNe, __vbaVarCmpEq, __vbaStrCmp, __vbaStrComp, __vbaStrCompVar
모두 두 값을 대상으로 비교를 진행하는 함수다.
이제 프로그램을 실행시켜보자.
프로그램 실행 위와 같이 프로그램을 실행하면 Registration을 요구하는 문구가 나온다. 위 Registration을 크랙하는 것이 이번 문제의 목표다.
2. Debugging(with OllyDbg)
OllyDbg를 이용해 프로그램을 열고, Ctrl+N(현재 모듈에서의 Name찾기)를 눌러보자.
Name 위와 같이 VB API 목록들이 나타나는 것을 확인할 수 있다. 이중 Lenas가 강조했던 API 중 첫 번째인 __vbaVarTstEq를 입력한 후, 해당 API가 참조되는 모든 부분에 BP를 설정하고 F9를 눌러 프로그램을 실행시키자.
__vbaVarTstEq BP 위와 같이 프로그램 창이 나타나기 전에 BP에 적중하는 것을 확인할 수 있다. F8을 눌러 계속 코드를 한줄씩 실행하다 보면 다음과 같은 창을 확인할 수 있다.
수상한 냄새를 풍기는 문자열 동그라미 친 부분이 웬지 register key 값 같아 보인다. 해당 키를 입력하면 등록에 성공하는 것을 확인할 수 있다.
크랙 성공 허무하지만 이렇게 문제풀이가 종료된다.
3. Comment
이번 문제는 문제를 푸는 요령이라기보다는 VB가 어떤 특징을 갖고 있고 리버싱할 때 어떤 부분에 초점을 맞추면 좋은지 간단하게 맛보게 해주는 느낌이었다. Lenas 강의에서는 SmartCheck라는 툴도 이용하지만 구글링을 해보니 VB decompiler가 많이 쓰이는 것 같아 다음 VB 리버싱에서는 VB decompiler를 사용해볼 것 같다.
반응형'Wargame > Lenas Reversing' 카테고리의 다른 글
[Lenas Reversing for Newbies] 11 (0) 2021.02.09 [Lenas Reversing for Newbies] 10 (0) 2021.02.08 [Lenas Reversing for Newbies] 08 (0) 2021.02.02 [Lenas Reversing for Newbies] 07 (0) 2021.02.01 [Lenas Reversing for Newbies] 06 (0) 2021.02.01