Hacking/Reversing / / 2016. 5. 4. 17:15

[리버싱] Visual Basic 파일 특징

1. VB 전용 엔진사용


- VB파일은 MSVBVM60.dll 이라는 VB전용 엔진을 사용한다. (ex. 메시지박스를 출력하고 싶을 때 VB소스코드에서 MsgBox() 함수를 사용한다. VB컴파일러는 실제로 MSVBVM60.dll !rtc MsgBox()가 호출 되도록 만들고 이 함수 내부에서 Win32 API인 user32.dll !MessageBoxW() 함수를 호출해준다.


2. N(Native) code, P(Pseudo) code의 구분


- VB파일은 컴파일 옵션에 따라서 N code와 P code로 컴파일이 가능함. 

- N code는 일반적인 디버거에서 해석 가능한 IA-32 인스트럭션을 사용하지만, P code는 VB엔진으로 가상머신을 구현하여 자체적으로 해석 가능한 명령어를 사용한다. VB P code를 정확히 분석하려면 에뮬레이터를 구현하여야함.


3. Event Handler


- VB는 대부분 GUI프로그래밍이라 Windows 운영체제의 Event Driven방식의 동작으로써 main(), Winmain()에 사용자 코드가 존재하는게 아니라 각 event handler에 사용자 코드가 존재함.


4. undocumented 구조체


- VB에서 사용되는 각종 정보들(Dialog, Control, Form, Module, Function, etc)은 내부적으로 구조체 형식으로 파일에 저장된다.

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유