
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
É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)
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
| 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 |
| 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 |