Skip to content
KitploitKITPLOIT
ToolsBlog
Log in
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
flare-emu — Skriptfähiges Binäremulations-Framework, das IDA Pro/Radare2 mit der Unicorn-Engine integriert, für automatisierte Malware-Analyse, String-Entschlüsselung und Code-Pfad-Erkundung über x86-, ARM- und ARM64-Architekturen hinweg. | Kitploit
Tools/GitHubGitHub/mandiant/flare-emu
Dynamische Analyse (Sandboxing)Reverse EngineeringMalware-AnalyseBinäranalyse
GitHubmandiant/flare-emu

flare-emu

Skriptfähiges Binäremulations-Framework, das IDA Pro/Radare2 mit der Unicorn-Engine integriert, für automatisierte Malware-Analyse, String-Entschlüsselung und Code-Pfad-Erkundung über x86-, ARM- und ARM64-Architekturen hinweg.

Repository anzeigen
95814351vor 1 JahrVon 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

flare-emu

flare-emu vereint ein unterstütztes Binary-Analyse-Framework, wie IDA Pro oder Radare2, mit dem Emulationsframework von Unicorn, um dem Benutzer eine einfach zu verwendende und flexible Schnittstelle zur Skripterstellung von Emulationsaufgaben zu bieten. Es ist darauf ausgelegt, die gesamte notwendige Verwaltung für den Aufbau eines flexiblen und robusten Emulators für die unterstützten Architekturen zu übernehmen, sodass Sie sich auf die Lösung Ihrer Code-Analyse-Probleme konzentrieren können. Derzeit unterstützt flare-emu die Architekturen x86, x86_64, ARM und ARM64.

Es bietet derzeit fünf verschiedene Schnittstellen, um Ihren Emulationsanforderungen gerecht zu werden, zusammen mit einer Reihe von zugehörigen Hilfs- und Dienstprogrammfunktionen.

  1. emulateRange – Diese API wird verwendet, um einen Bereich von Anweisungen oder eine Funktion in einem benutzerdefinierten Kontext zu emulieren. Sie bietet Optionen für benutzerdefinierte Hooks sowohl für einzelne Anweisungen als auch für den Fall, dass "call"-Anweisungen auftreten. Der Benutzer kann entscheiden, ob der Emulator Funktionsaufrufe überspringen oder in diese hineinspringen soll. Diese Schnittstelle bietet eine einfache Möglichkeit für den Benutzer, Werte für bestimmte Register und Stack-Argumente anzugeben. Wenn ein Bytestring angegeben wird, wird er in den Speicher des Emulators geschrieben und der Zeiger in das Register oder die Stack-Variable geschrieben. Nach der Emulation kann der Benutzer die Dienstprogrammfunktionen von flare-emu verwenden, um Daten aus dem emulierten Speicher oder den Registern zu lesen, oder das zurückgegebene Unicorn-Emulationsobjekt zur direkten Untersuchung verwenden. Eine kleine Wrapper-Funktion für emulateRange mit dem Namen emulateSelection kann verwendet werden, um den Bereich von Anweisungen zu emulieren, die derzeit in IDA Pro hervorgehoben sind.

  2. iterate - Diese API wird verwendet, um die Emulation auf bestimmte Verzweigungen innerhalb einer Funktion zu zwingen, um ein bestimmtes Ziel zu erreichen. Der Benutzer kann eine Liste von Zieladressen oder die Adresse einer Funktion angeben, von der aus eine Liste von Querverweisen auf die Funktion als Ziele verwendet wird, zusammen mit einem Callback für den Fall, dass ein Ziel erreicht wird. Die Ziele werden erreicht, unabhängig von Bedingungen während der Emulation, die möglicherweise andere Verzweigungen verursacht hätten. Wie bei der emulateRange-API werden Optionen für benutzerdefinierte Hooks sowohl für einzelne Anweisungen als auch für den Fall, dass "call"-Anweisungen auftreten, bereitgestellt. Ein Beispiel für die Verwendung der iterate-API ist die Erzielung ähnlicher Ergebnisse wie bei unserem Tool argtracker.

  3. iterateAllPaths - Diese API ähnelt iterate, außer dass anstelle einer Zieladresse oder mehrerer Zieladressen eine Zielfunktion angegeben wird, für die versucht wird, alle Pfade zu finden und zu emulieren. Dies ist nützlich, wenn Sie eine Codeanalyse durchführen, die jeden Basisblock einer Funktion erreichen möchte.

  4. emulateBytes – Diese API bietet eine Möglichkeit, einfach einen Block von externem Shellcode zu emulieren. Die bereitgestellten Bytes werden nicht zur IDB hinzugefügt und einfach so emuliert, wie sie sind. Dies kann zur Vorbereitung der Emulationsumgebung nützlich sein. Beispielsweise verwendet flare-emu selbst diese API, um ein Model Specific Register (MSR) für die ARM64-CPU zu manipulieren, das von Unicorn nicht exponiert wird, um Vector Floating Point (VFP)-Anweisungen und Registerzugriff zu ermöglichen. Das Unicorn-Emulationsobjekt wird für weitere Untersuchungen durch den Benutzer zurückgegeben.

  5. emulateFrom - Diese API ist nützlich in Fällen, in denen Funktionsgrenzen nicht klar definiert sind, wie es bei obfuskierten Binärdateien oder Shellcode häufig der Fall ist. Sie geben eine Startadresse an, und es wird emuliert, bis es nichts mehr zu emulieren gibt oder Sie die Emulation in einem Ihrer Hooks stoppen. Mit IDA Pro kann dies mit dem Parameter strict auf False aufgerufen werden, um dynamische Code-Erkennung zu aktivieren; flare-emu lässt IDA Pro Anweisungen erstellen, sobald sie während der Emulation angetroffen werden.

Installation

Um flare-emu für IDA Pro zu installieren, legen Sie einfach flare_emu.py, flare_emu_ida.py und flare_emu_hooks.py in das python-Verzeichnis Ihrer IDA Pro-Installation und importieren Sie es als Modul in Ihre IDAPython-Skripte.

Um flare-emu für Rizin zu installieren, stellen Sie einfach sicher, dass sich flare_emu.py, flare_emu_rizin.py und flare_emu_hooks.py im Python-Suchpfad für den Import von Modulen befinden. Bei Verwendung von Rizin als Binary-Analyse-Komponente für flare-emu ist rzpipe erforderlich.

Um flare-emu für Radare2 zu installieren, stellen Sie einfach sicher, dass sich flare_emu.py, flare_emu_radare.py und flare_emu_hooks.py im Python-Suchpfad für den Import von Modulen befinden. Bei Verwendung von Radare2 als Binary-Analyse-Komponente für flare-emu ist r2pipe erforderlich.

In jedem Fall ist flare-emu auf Unicorn und dessen Python-Bindungen angewiesen.

WICHTIGER HINWEIS
flare-emu wurde mit der neuen IDA Pro 7x-API geschrieben und ist nicht abwärtskompatibel mit früheren Versionen von IDA Pro.

Verwendung

Obwohl flare-emu zur Lösung vieler verschiedener Code-Analyse-Probleme verwendet werden kann, besteht eine seiner häufigsten Anwendungen darin, beim Entschlüsseln von Zeichenketten in Malware-Binärdateien zu helfen. FLOSS ist ein großartiges Tool, das dies oft automatisch für Sie erledigen kann, indem es versucht, die Zeichenketten-Entschlüsselungsfunktion(en) zu identifizieren und mithilfe von Emulation die an jedem Querverweis übergebenen Zeichenketten zu entschlüsseln. Es ist jedoch nicht immer möglich, dass FLOSS diese Funktionen identifiziert und mit seinen generischen Ansätzen korrekt emuliert. Manchmal müssen Sie etwas mehr Arbeit leisten, und hier kann flare-emu Ihnen viel Zeit sparen, sobald Sie sich damit vertraut gemacht haben. Lassen Sie uns ein häufiges Szenario durchgehen, dem ein Malware-Analyst beim Umgang mit verschlüsselten Zeichenketten begegnet.

Einfaches Szenario zur Zeichenketten-Entschlüsselung mit IDA Pro

Sie haben die Funktion identifiziert, die alle Zeichenketten in einer x86_64-Binärdatei entschlüsselt. Diese Funktion wird überall aufgerufen und entschlüsselt viele verschiedene Zeichenketten. In IDA Pro nennen Sie diese Funktion decryptString. Hier ist Ihr flare-emu-Skript, um alle diese Zeichenketten zu entschlüsseln und Kommentare mit den entschlüsselten Zeichenketten an jedem Funktionsaufruf zu platzieren sowie jede entschlüsselte Zeichenkette und die Adresse, an der sie entschlüsselt wird, zu protokollieren.``` from future import print_function import flare_emu

Tool herunterladen