Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
uEmu — Kleines, niedliches Emulator-Plugin für IDA basierend auf Unicorn. | Kitploit
Tools/GitHubGitHub/alexhude/uemu
Embedded-System-SicherheitDynamische Analyse (Sandboxing)Reverse EngineeringDebuggerBinäranalyseFirmware-Analyse
GitHubalexhude/uemu

uEmu

Kleines, niedliches Emulator-Plugin für IDA basierend auf Unicorn.

Repository anzeigen
1.2k1839vor 21 TagenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Übersicht

uEmu ist ein kleiner, niedlicher Emulator-Plugin für IDA, basierend auf der Unicorn-Engine.

Unterstützt standardmäßig folgende Architekturen: x86, x64, ARM, ARM64, MIPS, MIPS64

Wofür ist es GUT geeignet?

  • Emulation von Bare-Metal-Code (Bootloader, eingebettete Firmware usw.)
  • Emulation eigenständiger Funktionen

Wofür ist es SCHLECHT geeignet?

  • Emulation komplexen OS-Codes (dynamische Bibliotheken, Prozesse usw.)
  • Emulation von Code mit vielen Syscalls

Was kann verbessert werden?

  • Einen Weg finden, herstellerspezifische Registerzugriffe zu emulieren (wie MSR S3_x, X0 für ARM64)
  • Weitere Register zum Tracken hinzufügen

Installation

  • IDAPython über idapyswitch konfigurieren
  • brew install unicorn zum Installieren der Unicorn-Binärdateien
  • pip install unicorn zum Installieren der Unicorn-Python-Bindungen
  • Verwenden Sie Datei / Skriptdatei... oder ALT+F7 in IDA, um uEmu.py zu laden

Optional kann uEmu automatisch als IDA-Plugin geladen werden. In diesem Fall legen Sie es in den [IDA]/Plugins-Ordner und ändern Sie USE_AS_SCRIPT auf False in uEmu.py

Funktionen

Popup-Menü

  • Der Befehl Start initialisiert den Emulator, indem er alle Segmente abbildet und Unicorn einrichtet.
  • Der Befehl Run emuliert Anweisungen, bis ein Breakpoint erreicht wird oder ein Fehler auftritt.
  • Step emuliert eine oder N Anweisungen (halten Sie ALT/OPTION gedrückt, um eine Anzahl anzugeben).
  • Stop unterbricht die Emulation.
  • Reset setzt die Emulations-Engine zurück und hebt die Abbildung aller Speicherbereiche auf.
  • Jump To PC springt einfach zum aktuellen PC.
  • Set PC setzt den PC auf die Cursorposition.
  • Es ist möglich, den CPU-Kontext manuell oder über eine JSON-Datei zu aktualisieren (siehe unten).
  • Show Controls zeigt ein Fenster mit den Schaltflächen Start/Run/Step/Stop an.
  • Show CPU Context zeigt ein Fenster mit den verfügbaren Registern an.
  • Show CPU Extended Context zeigt ein Fenster mit erweiterten Registern (FP/SIMD) an.
  • Show Stack zeigt ein Fenster mit dem aktuellen Stack an.
  • Show Memory Range ermöglicht die Anzeige eines bestimmten Speicherbereichs.

Start

Starten Sie die Emulation ab der Cursorposition. Es ist notwendig, zuerst den anfänglichen CPU-Kontext bereitzustellen (siehe CPU-Kontext aktualisieren). Danach werden alle Segmente aus der IDA-Datenbank in den Emulator abgebildet (initialisierte Daten werden ebenfalls kopiert).

Run

Führt Code aus, bis ein Code- oder Speicher-Breakpoint erreicht wird oder ein Ereignis eintritt, das eine Benutzeraktion erfordert.

Step

Führt einen Einzelschritt aus. Halten Sie ALT/OPTION gedrückt, um die Anzahl der durchzuführenden Schritte anzugeben.

Stop

Wenn die Emulation läuft, kann dieser Befehl verwendet werden, um die Ausführung zu unterbrechen.

Reset

Setzt die Emulator-Instanz zurück und hebt die Abbildung aller Speicherbereiche auf.

Breakpoints

Sie können IDA-Breakpoints verwenden, um Stellen zu markieren, an denen die Emulation unterbrochen werden soll. Dies umfasst Code- und Speicher-Breakpoints. Wird normalerweise zusammen mit dem Befehl Run verwendet.

Laufzeitaktionen

Nicht abgebildeter Speicher

Wenn der Emulator auf Speicher zugreifen muss, der noch nicht abgebildet ist, zeigt das Plugin den folgenden Dialog an.

  • Drücken Sie JA, um einen Speicherauszug zum Laden in den Speicher bereitzustellen.

  • Drücken Sie NEIN, um eine leere Seite (0x1000) zu mappen, die mit Nullen gefüllt ist.
  • Drücken Sie Abbrechen, um die Emulation zu stoppen.

Unbekannte Anweisungen

Wenn der Emulator auf eine unbekannte Anweisung stößt, kann diese übersprungen und der CPU-Kontext manuell wiederhergestellt werden.

Ansichten

Controls

Nur ein Bedienfeld zur Steuerung der Ausführung.

CPU-Kontext

Aktueller CPU-Kontext.

Jedes Mal, wenn die Emulation anhält, werden geänderte Register hervorgehoben. Register können über das Popup-Menü in 1, 2 oder 3 Spalten angezeigt werden.

Es ist möglich, den CPU-Kontext über das Popup-Menü zu aktualisieren (siehe unten).

Erweiterter CPU-Kontext

Aktueller erweiterter CPU-Kontext.

Jedes Mal, wenn die Emulation anhält, werden geänderte Register hervorgehoben. Register können über das Popup-Menü in 1, 2 oder 3 Spalten angezeigt werden.

Es ist möglich, den CPU-Kontext über das Popup-Menü zu aktualisieren (siehe unten).

Speicher

Verwenden Sie diese Ansicht, um Speicherbereiche für eine bestimmte Adresse und Größe zu beobachten. Ein Kommentar wird im Titel zur Vereinfachung angezeigt.

Jedes Mal, wenn die Emulation anhält, werden geänderte Speicherblöcke hervorgehoben.

CPU-Kontext aktualisieren

Registerwerte können einzeln oder alle auf einmal über eine JSON-Datei über das Popup-Menü geändert werden. Der aktuelle Kontext kann auch zur späteren Verwendung in einer JSON-Datei gespeichert werden.

Haupt-Plugin-Menü

Neben allen im Popup-Menü aufgeführten Funktionen gibt es einige neue Befehle.

Abgebildeten Speicher anzeigen

Zeigt alle abgebildeten Bereiche an. Verwenden Sie das Popup-Menü, um den Speicher für einen bestimmten Bereich anzuzeigen oder in eine Datei zu dumpen.

Segmente holen

Dieser Befehl versucht, IDA-Segmente mit dem abgebildeten Speicher zu synchronisieren, indem er neue Abbildungen erstellt oder vorhandene zusammenführt, wenn möglich. Dies hilft, neue IDA-Segmente zur Laufzeit zum Emulator hinzuzufügen, ohne den Emulator neu starten zu müssen.

Projekt laden

Lädt den uEmu-Zustand aus einer Datei.

Projekt speichern

Speichert den uEmu-Zustand in einer Datei. Bitte beachten Sie, dass nur die in einem Plugin definierten Register gespeichert werden.

Einstellungen

  • Follow PC scrollt die IDA-Ansicht während der Emulation zum aktuellen PC.
  • Automatisch in Code umwandeln wenn die Daten unter dem Cursor kein Code sind.
  • Anweisungen verfolgen gibt jede Anweisung aus, die der Emulator ausführt.
  • Lazy Mapping fügt Seiten bei Bedarf hinzu, anstatt beim Start alle vorhandenen Bereiche abzubilden.

Erweiterungen

Es ist auch möglich, neue Funktionalität hinzuzufügen oder Ihr Projekt auf Basis von uEmu mithilfe des Erweiterungssystems zu erstellen.
Eine Beschreibung mit Beispiel finden Sie hier

  • crauEmu - Erweiterung zur Entwicklung und Analyse von Payloads für Code-Reuse-Angriffe.
Tool herunterladen