Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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
flare-emu — Framework d'émulation binaire scriptable intégrant IDA Pro/Radare2 avec Unicorn engine pour l'analyse automatisée de malwares, le déchiffrement de chaînes et l'exploration de chemins de code sur les architectures x86, ARM et ARM64. | Kitploit
Outils/GitHubGitHub/mandiant/flare-emu
Analyse Dynamique (Sandboxing)Rétro-ingénierieAnalyse de MalwareAnalyse de Binaires
GitHubmandiant/flare-emu

flare-emu

Framework d'émulation binaire scriptable intégrant IDA Pro/Radare2 avec Unicorn engine pour l'analyse automatisée de malwares, le déchiffrement de chaînes et l'exploration de chemins de code sur les architectures x86, ARM et ARM64.

Voir le dépôt
95814351il y a 1 anVé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

flare-emu

flare-emu associe un framework d'analyse binaire supporté, tel qu'IDA Pro ou Radare2, avec le framework d'émulation d'Unicorn pour offrir à l'utilisateur une interface facile à utiliser et flexible pour script des tâches d'émulation. Il est conçu pour gérer toute la maintenance nécessaire à la mise en place d'un émulateur flexible et robuste pour ses architectures supportées, afin que vous puissiez vous concentrer sur la résolution de vos problèmes d'analyse de code. Actuellement, flare-emu prend en charge les architectures x86, x86_64, ARM et ARM64.

Il fournit actuellement cinq interfaces différentes pour répondre à vos besoins d'émulation, ainsi qu'une multitude de fonctions d'aide et d'utilitaires associées.

  1. emulateRange – Cette API est utilisée pour émuler une plage d'instructions, ou une fonction, dans un contexte spécifié par l'utilisateur. Elle offre des options pour des hooks définis par l'utilisateur à la fois pour les instructions individuelles et pour lorsque des instructions « call » sont rencontrées. L'utilisateur peut décider si l'émulateur doit ignorer ou exécuter les appels de fonction. Cette interface fournit un moyen facile pour l'utilisateur de spécifier des valeurs pour des registres et arguments de pile donnés. Si une chaîne d'octets est spécifiée, elle est écrite dans la mémoire de l'émulateur et le pointeur est écrit dans le registre ou la variable de pile. Après l'émulation, l'utilisateur peut utiliser les fonctions utilitaires de flare-emu pour lire des données de la mémoire ou des registres émulés, ou utiliser l'objet d'émulation Unicorn retourné pour une interrogation directe. Une petite fonction d'encapsulation pour emulateRange, nommée emulateSelection, peut être utilisée pour émuler la plage d'instructions actuellement mise en surbrillance dans IDA Pro.

  2. iterate - Cette API est utilisée pour forcer l'émulation sur des branches spécifiques au sein d'une fonction afin d'atteindre une cible donnée. L'utilisateur peut spécifier une liste d'adresses cibles, ou l'adresse d'une fonction à partir de laquelle une liste de références croisées à la fonction est utilisée comme cibles, ainsi qu'un rappel pour lorsqu'une cible est atteinte. Les cibles seront atteintes, indépendamment des conditions lors de l'émulation qui auraient pu causer la prise de branches différentes. Comme l'API emulateRange, des options pour des hooks définis par l'utilisateur à la fois pour les instructions individuelles et pour lorsque des instructions « call » sont rencontrées sont fournies. Un exemple d'utilisation de l'API iterate est d'obtenir quelque chose de similaire à ce que fait notre outil argtracker.

  3. iterateAllPaths - Cette API est très similaire à iterate, sauf qu'au lieu de fournir une ou plusieurs adresses cibles, vous fournissez une fonction cible pour laquelle elle tentera de trouver tous les chemins et de les émuler. Cela est utile lorsque vous effectuez une analyse de code qui souhaite atteindre chaque bloc de base d'une fonction.

  4. emulateBytes – Cette API offre un moyen d'émuler simplement un blob de shellcode extérieur. Les octets fournis ne sont pas ajoutés à l'IDB et sont simplement émulés tels quels. Cela peut être utile pour préparer l'environnement d'émulation. Par exemple, flare-emu lui-même utilise cette API pour manipuler un registre spécifique au modèle (MSR) pour le processeur ARM64 qui n'est pas exposé par Unicorn afin d'activer les instructions Vector Floating Point (VFP) et l'accès aux registres. L'objet d'émulation Unicorn est retourné pour une exploration plus poussée par l'utilisateur.

  5. emulateFrom - Cette API est utile dans les cas où les limites des fonctions ne sont pas clairement définies, comme c'est souvent le cas avec des binaires obfusqués ou du shellcode. Vous fournissez une adresse de départ, et elle émule jusqu'à ce qu'il n'y ait plus rien à émuler ou que vous arrêtiez l'émulation dans l'un de vos hooks. Avec IDA Pro, cela peut être appelé avec le paramètre strict défini sur False pour activer la découverte dynamique de code ; flare-emu fera en sorte qu'IDA Pro crée les instructions au fur et à mesure qu'elles sont rencontrées lors de l'émulation.

Installation

Pour installer flare-emu pour IDA Pro, déposez simplement flare_emu.py, flare_emu_ida.py et flare_emu_hooks.py dans le répertoire python de votre IDA Pro et importez-le en tant que module dans vos scripts IDAPython.

Pour installer flare-emu pour Rizin, assurez-vous simplement que flare_emu.py, flare_emu_rizin.py et flare_emu_hooks.py se trouvent dans le chemin de recherche de Python pour l'importation de modules. Lorsque vous utilisez Rizin comme composant d'analyse binaire pour flare-emu, rzpipe est requis.

Pour installer flare-emu pour Radare2, assurez-vous simplement que flare_emu.py, flare_emu_radare.py et flare_emu_hooks.py se trouvent dans le chemin de recherche de Python pour l'importation de modules. Lorsque vous utilisez Radare2 comme composant d'analyse binaire pour flare-emu, r2pipe est requis.

Dans tous les cas, flare-emu dépend d'Unicorn et de ses bindings Python.

NOTE IMPORTANTE
flare-emu a été écrit en utilisant la nouvelle API IDA Pro 7x, il n'est pas rétrocompatible avec les versions précédentes d'IDA Pro.

Utilisation

Bien que flare-emu puisse être utilisé pour résoudre de nombreux problèmes d'analyse de code, l'une de ses utilisations les plus courantes est d'aider à déchiffrer des chaînes dans des binaires de malwares. FLOSS est un excellent outil qui peut souvent le faire automatiquement en essayant d'identifier la ou les fonctions de déchiffrement de chaînes et en utilisant l'émulation pour déchiffrer les chaînes passées à chaque référence croisée. Cependant, il n'est pas possible pour FLOSS de toujours identifier ces fonctions et de les émuler correctement avec ses approches génériques. Parfois, vous devez faire un peu plus de travail, et c'est là que flare-emu peut vous faire gagner beaucoup de temps une fois que vous êtes à l'aise avec. Parcourons un scénario courant auquel un analyste de malwares est confronté lorsqu'il traite des chaînes chiffrées.

Scénario facile de déchiffrement de chaînes avec IDA Pro

Vous avez identifié la fonction qui déchiffre toutes les chaînes dans un binaire x86_64. Cette fonction est appelée partout et déchiffre de nombreuses chaînes différentes. Dans IDA Pro, vous nommez cette fonction decryptString. Voici votre script flare-emu pour déchiffrer toutes ces chaînes et placer des commentaires avec les chaînes déchiffrées à chaque appel de fonction, ainsi que journaliser chaque chaîne déchiffrée et l'adresse à laquelle elle est déchiffrée.``` from future import print_function import flare_emu

Télécharger l’outil