
バージョン1.x、2.x、3.xをサポートする汎用VMProtectデバーチャライザ。スタンドアロンCLIツール + Ghidraプラグイン。
ステータス: ✅ プロダクション対応 | 検証: 22/22サンプル(100%) | 対象範囲: VMP ≤3.6(3.7+はリバースエンジニアリングが必要)
cd /home/ciupix/vmp_devirt_prod
cargo build --release
バイナリ: target/release/vmp_devirt
# バイナリの解析
./target/release/vmp_devirt <binary_path>
# ハンドラのエクスポート
./target/release/vmp_devirt <binary_path> --export-handlers handlers.json
# バイトコードのエクスポート
./target/release/vmp_devirt <binary_path> --export-bytecode bytecode.json
| バージョン |
|---|
テスト済みサンプル:
詳細な結果については VALIDATION_REPORT.md を参照してください。
Input Binary
↓
PE/ELF Loader (src/pe_loader.rs)
↓
Version Detector (src/version.rs)
↓
Dispatch Table Extractor (src/dispatch_table.rs)
├─ Unicorn XOR Key Capture (src/unicorn_emulator.rs)
└─ Pattern Matching Fallback
↓
Handler Classifier (src/handler_classifier.rs)
↓
Bytecode Decoder (src/bytecode.rs)
├─ Operand Decryption (src/decrypt.rs)
└─ ALU Reconstruction (src/alu.rs)
↓
Output (JSON/Pseudo-asm)
合計: 本番向けRustコード約2,800行
以下に基づくヒューリスティック:
VMP 1.x/2.x: .textセクション内のパターンマッチングによるXORキー抽出
VMP 3.x: ハンドラチェーンディスパッチ
以下に対するパターンマッチング:
FUTURE_WORK.md を参照してください。VALIDATION_REPORT.md - 包括的なテスト結果IMPLEMENTATION_COMPLETE.md - 実装ステータスUNICORN_IMPLEMENTATION_REPORT.md - XORキーキャプチャの詳細アーキテクチャはVMP 3.5.1ソースコードリークの解析に基づく:
研究・教育目的での使用
問題や質問については、検証レポートまたは実装ドキュメントを参照してください。
最終更新日: 2026-06-01 ステータス: プロダクション対応
| サンプル数 |
|---|
| 成功 |
|---|
| 平均時間 |
|---|
| VMP 1.x | 4 | 4/4 | 38ms |
| VMP 2.x | 6 | 6/6 | 734ms |
| VMP 3.x | 12 | 12/12 | 39ms |
| モジュール | 目的 | 行数 |
|---|
src/lib.rs | メインライブラリインターフェース | 150 |
src/version.rs | VMPバージョン検出 | 200 |
src/pe_loader.rs | PE/ELFバイナリ読み込み | 350 |
src/dispatch_table.rs | ディスパッチテーブル抽出 | 400 |
src/unicorn_emulator.rs | XORキーキャプチャ | 308 |
src/handler_classifier.rs | ハンドラタイプ識別 | 280 |
src/bytecode.rs | バイトコードの読み取り/デコード | 320 |
src/decrypt.rs | ValueCryptorチェーン | 250 |
src/alu.rs | ALU演算の再構築 | 200 |
src/opcode_table.rs | オペコード管理 | 180 |
src/bin/cli.rs | CLIツール | 400 |