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
vmp2 — Dépaqueter et désobfusquer les binaires protégés par VMProtect 2 avec un explorateur de VM basé sur l'émulation, un profileur de handlers et un recompilateur LLVM expérimental pour la dévirtualisation. | Kitploit
Outils/GitHubGitHub/aftermathlabs/vmp2
Analyse Statique de Code (SAST)Analyse de CodeAnalyse Dynamique de Code (DAST)Rétro-ingénierieAnalyse de MalwareAnalyse de BinairesArchived
GitHubaftermathlabs/vmp2

vmp2

Dépaqueter et désobfusquer les binaires protégés par VMProtect 2 avec un explorateur de VM basé sur l'émulation, un profileur de handlers et un recompilateur LLVM expérimental pour la dévirtualisation.

Voir le dépôt
13123il y a 9 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

Introduction

Ce dépôt est une collection d'outils hérités pour travailler avec des binaires protégés par VMProtect 2.
Ces outils permettent le dépaquetage, l'analyse et la dévirtualisation expérimentale de logiciels protégés par VMProtect 2. Au cœur de cette collection se trouve vmprofiler, une bibliothèque utilitaire qui fournit la logique fondamentale utilisée par tous les autres outils. Elle est chargée d'identifier les composants clés de VMProtect 2 tels que les VM handlers, la table des handlers, les transforms, et plus encore.

Avertissement

Les leçons tirées de ce projet vieux de plus de 4 ans devraient être transmises à celles et ceux qui s'intéressent à la dévirtualisation.

Ce projet tente d'identifier des handlers VM individuels. Cette approche est fragile, ne passe pas à l'échelle et peut être contournée par des modifications de l'architecture de la machine virtuelle (interconnexion de plusieurs handlers, handlers complexes, etc.). Au lieu de cela, je préconise une stratégie de levée (lifting) incrémentale et de récupération du flux de contrôle avec une logique de désobfuscation minimale spécifique à la VM. Des outils tels que Saturn, Dna by Colton, Triton et Mergen ont désobfusqué VMProtect avec succès avec peu ou pas d'identification de handlers spécifiques à la VM. Ce dépôt documente l'architecture de VMProtect 2 et sert d'avertissement : évitez de construire des outils de dévirtualisation qui dépendent fortement de l'identification de handlers spécifiques à la machine virtuelle.

Une approche semi-générique de la dévirtualisation de VMProtect nécessite un framework robuste prenant en charge la propagation load/store, la propagation de constantes de section, la DCE, et quelques autres optimisations simples. Beaucoup de personnes tentent d'utiliser LLVM pour recompiler vers du natif ; cependant, je pense que cette approche produira toujours un résultat peu satisfaisant. Nous avons notre propre framework, blare2, qui offre des capacités propres de levée (lift) et d'abaissement (lowering) 1:1 que nous exploitons à des fins de désobfuscation. Si vous êtes intéressé par des services de conseil en désobfuscation, c'est quelque chose que nous pouvons fournir pour peu que notre emploi du temps le permette.


Aperçu des outils

  • vmemu
    Un outil d'exploration de machine virtuelle basé sur Unicorn Engine. Il vous permet de dépaqueter des programmes protégés et d'analyser le flux de contrôle dans un vmenter spécifié.
    Cet outil génère un fichier .vmp2 contenant le graphe de flux de contrôle de l'entrée VM donnée.
    Le fichier .vmp2 résultant peut ensuite être transmis à vmdevirt pour recompiler la fonction en x86 natif et la réintégrer dans le binaire d'origine. Veuillez noter qu'il ne s'agit PAS d'un simple traceur qui ne découvre qu'un seul chemin à travers une fonction : il identifie en réalité les jcc virtuels et explore tout le flux de contrôle virtualisé.

  • vmdevirt
    Un recompilateur expérimental basé sur LLVM pour les fichiers .vmp2.
    Bien que fonctionnel, il est considéré comme hautement expérimental et instable, et cette approche est généralement déconseillée.

  • vmassembler
    Un assembleur expérimental pour encoder des opérations de machine virtuelle définies par l'utilisateur.
    Ce projet démontre une compréhension technique approfondie de l'architecture de la machine virtuelle VMProtect 2.

  • vmhook
    Un outil conçu pour s'interfacer avec la machine virtuelle VMProtect 2 à l'exécution, permettant une introspection détaillée des .


Dépaqueteur VMProtect 2

Veuillez suivre les instructions sur cette page.

Instructions de compilation

Prérequis

  • CMake ≥ 3.11
  • Compilateur C++
  • Visual Studio 2022 pour vmhook
  • Au moins 50 Go d'espace libre pour LLVM et autres artefacts de compilation

Configuration pour vmassembler, vmemu, vmprofiler et vmprofiler-cli :

root@kitploit:~
cmake -B build
cmake --build build

Avec vmdevirt (téléchargera et compilera LLVM !) :

root@kitploit:~
cmake -B build -DBUILD_VMDEVIRT=ON -DLLVM_BUILD_TYPE=Release
cmake --build build

Avec vmprofiler-qt :

root@kitploit:~
cmake -B build -DBUILD_VMPROFILER_QT=ON
cmake --build build

Les deux modules optionnels :

root@kitploit:~
cmake -B build -DBUILD_VMDEVIRT=ON -DBUILD_VMPROFILER_QT=ON -DLLVM_BUILD_TYPE=Release
cmake --build build

Avis de non-responsabilité légal

Ces outils sont fournis à des fins éducatives et de recherche uniquement. Ils ne doivent pas être utilisés pour des activités illégales, des accès non autorisés ou des violations du DMCA ou d'autres lois. Les outils eux-mêmes ne violent aucune réglementation du DMCA. Tout ce travail est ma création originale, et toute action entreprise par les utilisateurs de ces outils relève uniquement de la responsabilité de ces utilisateurs et ne reflète ni les actions ni les intentions de l'auteur.

Télécharger l’outil
handlers VM individuels
  • vmprofiler
    La bibliothèque utilitaire principale qui alimente tous les autres outils.
    Elle comprend le pattern matching des handlers VM, l'extraction de la table des handlers, l'élimination de code mort (DCE), et d'autres routines d'analyse essentielles.

  • vmprofiler-cli
    Une interface en ligne de commande pour vmprofiler, permettant aux utilisateurs d'afficher et d'inspecter les informations extraites sous forme textuelle.

  • vmprofiler-qt
    Un désassembleur graphique basé sur Qt pour le bytecode VMProtect 2, offrant une exploration interactive et visuelle du code virtualisé.