Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
vmpdump — 동적 VMP 덤퍼 및 임포트 픽서, VTIL 기반. | Kitploit
도구/GitHubGitHub/0xnobody/vmpdump
Dynamic Analysis (Sandboxing)ExploitationReverse EngineeringDebuggersBinary Analysis
GitHub0xnobody/vmpdump

vmpdump

동적 VMP 덤퍼 및 임포트 픽서, VTIL 기반.

저장소 보기
1.4k2315년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

VMPDump

VTIL 기반의 동적 VMP 덤퍼 및 임포트 픽서입니다. VMProtect 3.X x64에서 작동합니다.

Before vs After (변환 전 vs 변환 후)

사용법

VMPDump.exe <Target PID> "<Target Module>" [-ep=<Entry Point RVA>] [-disable-reloc]

인수:

  • <Target PID>: 대상 프로세스의 ID (10진수 또는 16진수 형식).
  • <Target Module>: 덤프하고 수정할 모듈의 이름. 프로세스 이미지 모듈을 원하는 경우 빈 문자열("")을 사용할 수 있습니다.
  • [-ep=<Entry Point RVA>]: 선택적으로 제공되는 엔트리 포인트 RVA (16진수 형식). VMPDump는 옵셔널 헤더의 엔트리 포인트를 이 값으로 덮어씁니다.
  • [-disable-reloc]: VMPDump에게 출력 이미지에서 재배치가 제거되었음을 표시하도록 지시하는 선택적 설정. 이미지는 덤프된 ImageBase에서 로드되도록 강제됩니다. 실행 가능한 덤프가 필요한 경우 유용합니다.

VMPDump를 실행하기 전에 대상 프로세스에서 VMProtect 초기화 및 언패킹이 완료되어야 합니다. 즉, OEP(Original Entry Point) 이상의 상태여야 합니다. 덤프되고 수정된 이미지는 프로세스 이미지 모듈 디렉터리에 <Target Module Name>.VMPDump.<Target Module Extension> 이름으로 나타납니다.

작동 방식

VMProtect는 모든 임포트 호출이나 점프에 대해 스텁(stub)을 주입합니다. 이 스텁들은 .vmpX 섹션에서 '난독화된' 썽크(thunk)를 해석하고, 고정 상수를 더해 '난독 해제'합니다. 호출이나 점프 자체는 ret 명령어로 디스패치됩니다.

VMPDump는 모든 실행 가능한 섹션에서 이러한 스텁을 스캔하고, VTIL x64 리프터를 사용하여 VTIL로 리프트합니다. 그런 다음 이러한 스텁에 대해 분석을 수행하여 어떤 종류의 호출을 대체해야 하는지와 어떤 바이트를 덮어써야 하는지 결정합니다.

모든 호출이 검색되면 VMPDump는 새로운 임포트 테이블을 생성하고 기존 IAT에 썽크를 추가합니다. VMP 임포트 스텁에 대한 호출은 이러한 썽크에 대한 직접 호출로 대체됩니다.

변형된 루틴에서는 VMP 임포트 스텁 호출을 직접 썽크 호출로 대체하기에 충분한 바이트가 없는 상황이 발생할 수 있습니다. 후자가 1바이트 더 크기 때문입니다. 이러한 경우 섹션이 확장되고 임포트 썽크로 점프하는 스텁이 주입됩니다. 그런 다음 VMP 임포트 스텁 호출은 해당 주입된 스텁에 대한 5바이트 상대 호출 또는 점프로 대체됩니다.

빌드 (CMake)

root@kitploit:~
mkdir build && cd build
cmake -G "Visual Studio 16 2019" ..
cmake --build . --config Release

빌드 (Visual Studio)

VS에서 빌드하려면 vcxproj의 include/library 디렉터리를 VTIL-NativeLifers/VTIL-Core/Keystone/Capstone으로 변경하기만 하면 됩니다.

이 프로젝트는 C++20을 필요로 합니다.

문제점 및 제한 사항

코드 섹션이 선형으로 스캔되기 때문에, 특히 심하게 변형되고 난독화된 코드에서는 일부 임포트 스텁 호출이 건너뛰어져 해결되지 않을 수 있습니다. 그러나 VMPDump는 대부분의 VMProtect 변형 불일치에 대한 해결 방법을 포함하고 있으므로, 심하게 변형된 코드에서도 적절한 결과를 생성할 수 있습니다.

이 문제가 발생하면 관련 정보와 함께 이슈를 제출해 주시면 확인하겠습니다.

라이선스

GPL-3.0 라이선스에 따라 라이선스가 부여됩니다. 어떠한 종류의 보증도 제공되지 않습니다.

도구 다운로드