ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Lenas Reversing for Newbies] 09
    Wargame/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

    댓글

Designed by Tistory.