Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
vmprotect-research | Kitploit
Outils/GitHubGitHub/rasetsuu/vmprotect-research
Analyse StatiqueAnalyse Dynamique (Sandboxing)Rétro-ingénierieDébogueursAnalyse de BinairesArticles et RechercheApprentissage et ÉducationAnalyse de MicrologicielExploitation de Binaires
GitHubrasetsuu/vmprotect-research

vmprotect-research

Voir le dépôt
489il y a 2 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

VMP Devirtualizer - Version de production

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)


Fonctionnalités

  • Prise en charge multi-versions : VMP 1.x, 2.x, 3.x (1.1 → 3.10.5)
  • Détection de version : Identification automatique par heuristique
  • Extraction de la table de dispatch : Capture de clé XOR Unicorn pour les tables chiffrées
  • Classification des handlers : 256 types de handlers pour toutes les versions
  • Décodage du bytecode : Opérations VM → reconstruction d'instructions x86-64
  • Prise en charge de plateformes : Binaires Windows PE + Linux ELF
  • Intégration du décompilateur : Bytecode VM → pseudocode
  • Plugin Ghidra : Analyse interactive des handlers + annotation

Démarrage rapide

Compilation

root@kitploit:~
cd /home/ciupix/vmp_devirt_prod
cargo build --release

Binaire : target/release/vmp_devirt

Utilisation

root@kitploit:~
# 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

Résultats de validation

Résumé

  • Total d'échantillons : 22
  • Taux de réussite : 22/22 (100 %)
  • Temps de traitement moyen : 229 ms
  • Temps total : 5,0 secondes

Par version

Échantillons testés :

  • VMP 1.x : HiVmp.vmp.1.1.exe, HiVmp.vmp.1.4.exe, HiVmp.vmp.1.54.exe, HiVmp.vmp.1.70.4.exe
  • VMP 2.x : Branch0.vmp.exe, HiVmp.exe, mfc_algo_demo.vmp.exe, Project1.vmp.exe, Project2.vmp.exe, Project4.vmp.exe
  • VMP 3.x : add_control_flow.vmp.exe, adder.vmp.exe, bitwise.vmp.exe, control_flow_test.vmp.exe, cpuid_test.vmp.exe, fac_fib.vmp.exe, globals.vmp.exe, hello_world.vmp.exe, multiadder.vmp.exe, nested_virt_funccall.vmp.exe, ptr_drf.vmp.exe, switch.vmp.exe

Voir VALIDATION_REPORT.md pour les résultats détaillés.


Architecture

root@kitploit:~
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)

Modules principaux

Total : ~2 800 lignes de code Rust de production


Détails d'implémentation

Détection de version

Heuristiques basées sur :

  • Modèles d'entrée des handlers (opcodes POP/PUSH)
  • Mécanisme de dispatch (jumptable vs. chaîne chiffrée vs. chaîne de handlers)
  • Disposition des sections PE (.vmp0, .vmp1, .text)
  • Modèle de stub d'entrée (PUSH chiffré + CALL/JMP)

Extraction de la table de dispatch

VMP 1.x/2.x : Extraction de clé XOR par correspondance de motifs dans la section .text

  • Analyse les motifs d'instructions XOR
  • Dérive les clés des séquences d'opcodes
  • Valide par rapport à la plage de base de l'image

VMP 3.x : Dispatch par chaîne de handlers

  • Localise les points de dispatch (DP0-DP5)
  • Trace les chaînes de handlers
  • Extrait les 256 entrées de dispatch

Classification des handlers

Correspondance de motifs sur :

  • Motif d'entrée (49 8b 2a = POP pour VMP 3.x)
  • Opération principale (SUB, ADD, XOR, etc.)
  • Types d'opérandes (slot, offset, immédiat)
  • Mécanisme de dispatch (push/ret, jmp direct)

Décodage du bytecode

  1. Lire l'opcode depuis la section bytecode
  2. Rechercher la sémantique du handler
  3. Extraire les opérandes (slot, offset)
  4. Déchiffrer les opérandes via les chaînes ValueCryptor
  5. Reconstruire l'instruction x86-64
  6. Gérer le contexte VM (fichier de registres, drapeaux, pile)

Limitations connues

  1. VMP 3.7+ (Handlers fusionnés) - Non pris en charge. VMP 3.7+ a introduit des handlers fusionnés (plusieurs opérations par entrée de handler), ce qui casse le classifieur actuel. Nécessite de l'ingénierie inverse avec un échantillon réel 3.7+. Voir FUTURE_WORK.md pour plus de détails.
  2. Avertissements de validation de clé XOR - Attendus pour VMP 1.x/2.x (non critiques)
  3. Détection du dispatch VMP 3.x - Utilise une stratégie de repli pour les obfuscations plus récentes
  4. Échantillons Linux - Non inclus dans le jeu de test actuel (prise en charge ELF implémentée)

Performance

  • Débit : ~4,4 échantillons/seconde
  • Mémoire : <50 Mo par échantillon
  • Latence : 5 ms à 3,25 s selon la taille du binaire

Documentation

  • VALIDATION_REPORT.md - Résultats de test complets
  • IMPLEMENTATION_COMPLETE.md - Statut d'implémentation
  • UNICORN_IMPLEMENTATION_REPORT.md - Détails de la capture de clé XOR

Références sources

Architecture basée sur l'analyse de la fuite du code source de VMP 3.5.1 :

  • Structure des handlers et mécanisme de dispatch
  • Implémentation des chaînes ValueCryptor
  • Modèles d'opérations ALU
  • Gestion du contexte VM

Licence

Utilisation à des fins de recherche et d'éducation


Contact

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

Télécharger l’outil
VersionÉchantillonsRéussiteTemps moyen
VMP 1.x44/438ms
VMP 2.x66/6734ms
VMP 3.x1212/1239ms
ModuleFonctionLignes
src/lib.rsInterface principale de la bibliothèque150
src/version.rsDétection de version VMP200
src/pe_loader.rsChargement de binaires PE/ELF350
src/dispatch_table.rsExtraction de la table de dispatch400
src/unicorn_emulator.rsCapture de clé XOR308
src/handler_classifier.rsIdentification du type de handler280
src/bytecode.rsLecture/décodage du bytecode320
src/decrypt.rsChaînes ValueCryptor250
src/alu.rsReconstruction des opérations ALU200
src/opcode_table.rsGestion des opcodes180
src/bin/cli.rsOutil CLI400