분석 TIP/프로텍션

VMProtect 메뉴얼 언패킹 방법

두유노우컴퓨터 2025. 4. 28. 10:55

1. 패커를 확인 후 x32/64dbg 디버거를 통해 VMP로 패킹된 파일을 연다.

패커 확인

 

2. 비어있는 .text 섹션에 하드웨어 브레이크 포인트를 쓰기로 걸어 둔다.

텍스트 섹션 첫번째 바이트 HWBP

 

3. 실행(F9)를 할 경우 .text 섹션에 첫번째 바이트에 실제 코드가 쓰여진다.

첫번째 바이트 쓰기

 

4. 이후 해당 위치에서 `CTRL+F9(Execute till Return)`을 입력하면 리턴 명령을 만날때까지 실행하여 패킹이 풀린다.

텍스트 섹션에 코드 작성 완료

 

5. OllyDumpEx 플러그인을 통해 덤프를 떠서 IDA로 확인한다.

 


 

VMProtect 버전 별로 차이가 있지만, Ctrl + F9를 통해 리턴까지 실행하라고 하면 Text 섹션에 한번에 쓰는게 아니라 짧은 바이트씩 쓰는 경우가 있다. 이럴 경우 가만히 기다릴 수 없는 형태로 HWBP자체를 .text 섹션의 메모리 마지막 주소로 한 후 실행시키면 한번에 코드를 얻을 수 있다.

짧은 단위로 쓰는 경우
텍스트 섹션 마지막 코드에 HWBP 걸기

 

만약 text 섹션외에 rdata data reloc 비워져있다면 해당 주소값까지 합쳐서 HWBP를 걸고 돌려주면 된다.