[리버싱핵심원리] abex' crackme #2 - Visual Basic 파일 특징

흑흑코더·2023년 4월 3일
0

시스템

목록 보기
8/22

🤓 책 '리버싱 핵심원리'를 바탕으로 공부한 내용을 정리한 글입니다.

크랙 해야할 abex' crackme #2 문제의 파일 유형에 대해 알아보자

VB 전용 엔진

: VB파일은 MSVBNM60.dll이라는 VB전용 엔진을 사용

ex) 메시지 박스 출력 -> VB 소스 코드에서 MsgBox()함수 호출 -> 내부에서 Win32 API인 user32.dll!MessageBoxW()함수를 호출

N(Native) code & P(Pseudo) code

: 컴파일 옵션에 다라 Ncode와 P code로 컴파일이 가능

  • N code
    일반적인 디버거에서 해석 가능한 IA-32 Instruction 사용
  • P code
    Interpreter 언어 개념, VB 엔진으로 가상 머신을 구현해 자체적으로 해석 가능한 명령어를 사용
    => VB의 P code 해석을 위해서는 VB엔진을 분석하여 에뮬레이터 구현이 필요

Event Handler

: IDE인터페이스 자체도 GUI 프로그래밍에 최적화

  • Windows 운영체제의 Event Driven 방식으로 동작
    => 각 evnet handler에 사용자 코드가 존재
  • abex' crackme #2에서는 [Check] 버튼 handler에 사용자 코드가 존재할 것

undocumented 구조체

  • VB에서 사용되는 각종 정보들은 구조체 형식으로 파일에 저장 되는데, Microsoft에서는 이러한 구조체 정보를 정식으로 공개하지 않아 디버깅에 어려움이 있음
profile
공부합시다

0개의 댓글