
Dévirtualiseur VMProtect généralisé prenant en charge les versions 1.x–3.x. Outil CLI autonome et plugin Ghidra pour le décodage automatisé du bytecode, la classification des handlers et la reconstruction des instructions x86-64 à partir de binaires protégés.
Dévirtualiseur VMProtect généralisé prenant en charge les versions 1.x, 2.x et 3.x. Outil CLI autonome + plugin Ghidra.
Statut : ✅ Prêt pour la production | Validation : 22/22 échantillons (100 %) | Périmètre : VMP ≤3.6 (3.7+ nécessite de l'ingénierie inverse)
cd /home/ciupix/vmp_devirt_prod
cargo build --release
Binaire : target/release/vmp_devirt
# Analyze binary
./target/release/vmp_devirt <binary_path>
# Export handlers
./target/release/vmp_devirt <binary_path> --export-handlers handlers.json
# Export bytecode
./target/release/vmp_devirt <binary_path> --export-bytecode bytecode.json
| Version | Échantillons | Réussite | Temps moyen |
|---|---|---|---|
| VMP 1.x | 4 | 4/4 | 38ms |
| VMP 2.x | 6 | 6/6 | 734ms |
| VMP 3.x | 12 | 12/12 | 39ms |
Échantillons testés :
Voir VALIDATION_REPORT.md pour les résultats détaillés.
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)
| Module | Fonction | Lignes |
|---|---|---|
src/lib.rs | Interface principale de la bibliothèque | 150 |
src/version.rs | Détection de version VMP | 200 |
src/pe_loader.rs | Chargement de binaires PE/ELF | 350 |
src/dispatch_table.rs | Extraction de la table de dispatch | 400 |
src/unicorn_emulator.rs | Capture de clé XOR | 308 |
src/handler_classifier.rs | Identification du type de handler | 280 |
src/bytecode.rs | Lecture/décodage du bytecode | 320 |
src/decrypt.rs | Chaînes ValueCryptor | 250 |
src/alu.rs | Reconstruction des opérations ALU | 200 |
src/opcode_table.rs | Gestion des opcodes | 180 |
src/bin/cli.rs | Outil CLI | 400 |
Total : ~2 800 lignes de code Rust de production
Heuristiques basées sur :
VMP 1.x/2.x : Extraction de clé XOR par correspondance de motifs dans la section .text
VMP 3.x : Dispatch par chaîne de handlers
Correspondance de motifs sur :
FUTURE_WORK.md pour plus de détails.VALIDATION_REPORT.md - Résultats de test completsIMPLEMENTATION_COMPLETE.md - Statut d'implémentationUNICORN_IMPLEMENTATION_REPORT.md - Détails de la capture de clé XORArchitecture basée sur l'analyse de la fuite du code source de VMP 3.5.1 :
Utilisation à des fins de recherche et d'éducation
Pour les problèmes ou questions, consultez les rapports de validation ou la documentation d'implémentation.
Dernière mise à jour : 2026-06-01 Statut : Prêt pour la production