티스토리 뷰

반응형

이번 포스팅에서는 Visual Basic이라는 언어를 사용해 만들어진 프로그램들을 리버싱을 통해 분석할 때 주의해야할 점과 차이점에 대해서 설명한다.

 

 

- VB 전용엔진을 사용한다. (MSUBUM60.dll 파일)

  결과적으로 MSUBUM60.dll의 API를 우리가 호출하게되면 내부적으로 그 API에서 필요로하는

  Windows API들을 다시한번 호출해주는 과정을 거친다.

  JAVA의 JVM과 비스무리한 느낌이기는 하다..?

 

- N code, P code가 존재한다.

  N code는 Nature Code의 약자로 우리가 평상시에 사용하던 VC++에서 사용하던 코드이다.

  반면에 P code는 VB 전용엔진에서만 해석이 가능한 코드를 말한다. (이식성이 증가한다.)

 

- Event Handler 사용.

  Windows의 Event Driven 방식으로 동작.

  모든 코드는 Handler 부분에 존재한다. ( main조차도 Handler코드로써 동작 )

 

- Undocumented 구조체.

  각종 정보들은 내부적으로 구조체에 포함되어서 동작한다.

  이 구조체는 공개되지않아서 외부에서 동적분석으로도 해당 데이터를 확인하기 어렵다.

 


< 분석 팁 >

 1. MSUBUM60.dll 의 __vbaVarTstEq, __vbaVarCmpEq, __vbaVarTextTstEq, rtcMsgBox 와 같은 API를

    기억해 이를 BreakPoint로 삼아서 Handler부분에 접근할 수 있다.

 

 2. VB Decompiler Pro 를 통해 P Code를 디컴파일할 수 있다.

이렇게 디컴파일을 한 경우 해당 EventHandler의 주소를 얻을 수 있고,

OllyDBG 상에서 해당 주소를 직접 접근하면 그에 대한 코드를 획득할 수 있다.

진짜 말도안되게 편한거같은데..

 

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함