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
uEmu — Petit plugin d'émulateur mignon pour IDA basé sur Unicorn. | Kitploit
Outils/GitHubGitHub/alexhude/uemu
Sécurité des Systèmes EmbarquésAnalyse Dynamique (Sandboxing)Rétro-ingénierieDébogueursAnalyse de BinairesAnalyse de Micrologiciel
GitHubalexhude/uemu

uEmu

Petit plugin d'émulateur mignon pour IDA basé sur Unicorn.

Voir le dépôt
1.2k183il y a 2 joursVé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

Aperçu

uEmu est un petit plugin d'émulateur mignon pour IDA basé sur unicorn engine.

Prend en charge les architectures suivantes directement : x86, x64, ARM, ARM64, MIPS, MIPS64

À quoi est-ce BON ?

  • Émuler du code bare metal (bootloaders, firmware embarqué, etc.)
  • Émuler des fonctions indépendantes

À quoi est-ce MAUVAIS ?

  • Émuler du code OS complexe (bibliothèques dynamiques, processus, etc.)
  • Émuler du code avec de nombreux appels système

Que peut-on améliorer ?

  • Trouver un moyen d'émuler l'accès aux registres spécifiques au fournisseur (comme MSR S3_x, X0 pour ARM64)
  • Ajouter plus de registres à suivre

Installation

  • Configurer IDAPython via idapyswitch
  • brew install unicorn pour installer les binaires Unicorn
  • pip install unicorn pour installer les bindings Python d'Unicorn
  • Utiliser File / Script file... ou ALT+F7 dans IDA pour charger uEmu.py

Optionnellement, uEmu peut être chargé automatiquement comme plugin IDA. Dans ce cas, placez-le dans le dossier [IDA]/Plugins et modifiez USE_AS_SCRIPT à False dans uEmu.py

Fonctionnalités

Menu contextuel

  • La commande Start initialise l'émulateur en mappant tous les segments et en configurant Unicorn
  • La commande Run émule les instructions jusqu'à ce qu'un point d'arrêt soit atteint ou qu'une erreur se produise
  • Step émule une ou N instructions (maintenez ALT/OPTION pour spécifier un nombre)
  • Stop interrompt l'émulation
  • Reset réinitialise le moteur d'émulation et supprime le mappage de toutes les régions mémoire
  • Jump To PC saute simplement au PC actuel
  • Set PC déplace le PC jusqu'au curseur
  • Il est possible de Update CPU Context manuellement ou via un fichier JSON (voir ci-dessous)
  • Show Controls affiche une fenêtre avec les boutons Start/Run/Step/Stop
  • Show CPU Context affiche une fenêtre avec les registres disponibles
  • Show CPU Extended Context affiche une fenêtre avec les registres étendus (FP/SIMD)
  • Show Stack affiche une fenêtre avec la pile actuelle
  • Show Memory Range permet d'afficher une région mémoire spécifique

Start

Démarrer l'émulation depuis le curseur. Il est nécessaire de fournir d'abord le contexte CPU initial (voir Update CPU Context). Après cela, tous les segments de la base de données IDA seront mappés dans l'émulateur (les données initialisées seront également copiées).

Run

Exécuter le code jusqu'à ce qu'un point d'arrêt de code ou de mémoire soit atteint ou qu'un événement nécessitant une action de l'utilisateur se produise.

Step

Effectuer une exécution pas à pas unique. Maintenez ALT/OPTION pour spécifier le nombre de pas à effectuer.

Stop

Lorsque l'émulation est en cours, cette commande peut être utilisée pour interrompre l'exécution.

Reset

Réinitialise l'instance de l'émulateur et supprime le mappage de toutes les régions mémoire.

Breakpoints

Vous pouvez utiliser les points d'arrêt IDA pour indiquer les emplacements où l'émulation doit être interrompue. Cela inclut les points d'arrêt de code et de mémoire. Généralement utilisés avec la commande Run.

Actions en cours d'exécution

Mémoire non mappée

Lorsque l'émulateur doit accéder à une mémoire qui n'est pas encore mappée, le plugin affiche la boîte de dialogue suivante.

  • Appuyez sur YES pour fournir un dump mémoire à charger en mémoire.

  • Appuyez sur NO pour mapper une page vide (0x1000) remplie de zéros
  • Appuyez sur Cancel pour arrêter l'émulation

Instructions inconnues

Lorsque l'émulateur rencontre une instruction inconnue, il est possible de la sauter et de restaurer manuellement le contexte CPU.

Vues

Contrôles

Juste un panneau pour contrôler l'exécution.

Contexte CPU

Contexte CPU actuel.

Chaque fois que l'émulation s'arrête, les registres modifiés seront surlignés. Les registres peuvent être affichés sur 1, 2 ou 3 colonnes via le menu contextuel.

Il est possible de mettre à jour le contexte CPU via le menu contextuel (voir ci-dessous).

Contexte CPU étendu

Contexte CPU étendu actuel.

Chaque fois que l'émulation s'arrête, les registres modifiés seront surlignés. Les registres peuvent être affichés sur 1, 2 ou 3 colonnes via le menu contextuel.

Il est possible de mettre à jour le contexte CPU via le menu contextuel (voir ci-dessous).

Mémoire

Utilisez cette vue pour observer les régions mémoire pour une adresse et une taille spécifiées. Un commentaire sera affiché dans le titre pour plus de commodité.

Chaque fois que l'émulation s'arrête, les blocs mémoire modifiés seront surlignés.

Mise à jour du contexte CPU

Les valeurs des registres peuvent être modifiées individuellement ou toutes à la fois via un fichier JSON depuis le menu contextuel. Le contexte actuel peut également être sauvegardé dans un fichier JSON pour une utilisation future.

Menu principal du plugin

En plus de toutes les fonctions listées dans le menu contextuel, il y a quelques nouvelles commandes.

Afficher la mémoire mappée

Affiche toutes les régions mappées. Utilisez le menu contextuel pour afficher la mémoire d'une région particulière ou la dumper dans un fichier.

Récupérer les segments

Cette commande essaie de synchroniser les segments IDA avec la mémoire mappée en créant de nouveaux mappages ou en fusionnant avec les existants si possible. Cela aide à ajouter de nouveaux segments IDA à l'émulateur en cours d'exécution sans redémarrer l'émulateur.

Charger un projet

Charger l'état d'uEmu depuis un fichier.

Sauvegarder un projet

Sauvegarder l'état d'uEmu dans un fichier. Veuillez noter que seuls les registres définis dans un plugin sont sauvegardés.

Paramètres

  • Follow PC fait défiler la vue IDA jusqu'au PC actuel pendant l'émulation
  • Convert to Code automatically convertit automatiquement en code si les données IDA sous le curseur ne sont pas du code
  • Trace instructions imprime chaque instruction que l'émulateur exécute
  • Lazy mapping ajoute des pages à la demande au lieu de mapper toutes les régions existantes au démarrage

Extensions

Il est également possible d'ajouter de nouvelles fonctionnalités ou de construire votre projet sur uEmu en utilisant le système d'extensions.
Veuillez trouver la description avec un exemple ici

  • crauEmu - extension pour développer et analyser des payloads pour les attaques de réutilisation de code.
Télécharger l’outil