Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
obfuscation_detection — Binary Ninja-Plugin zur Identifizierung von obfuskiertem Code und anderen interessanten Codekonstrukten | Kitploit
Tools/GitHubGitHub/mrphrazer/obfuscation_detection
Statische AnalyseReverse EngineeringMalware-AnalyseBinäranalyseFirmware-Analyse
GitHubmrphrazer/obfuscation_detection

obfuscation_detection

Binary Ninja-Plugin zur Identifizierung von obfuskiertem Code und anderen interessanten Codekonstrukten

Repository anzeigen
6727424vor 4 MonatenVon 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

Obfuscation Detection (v2.4)

Autor: Tim Blazytko

Erkennen Sie automatisch verschleierten Code und andere interessante Codekonstrukte

Beschreibung:

Obfuscation Detection ist ein Binary-Ninja-Plugin zur Erkennung von verschleiertem Code und interessanten Codekonstrukten (z. B. Zustandsautomaten) in Binärdateien. Das Plugin erleichtert die Analyse, indem es Codestellen identifiziert, die während des Reverse Engineerings einen genaueren Blick wert sein könnten.

Basierend auf verschiedenen Heuristiken lokalisiert das Plugin Funktionen, die komplexe oder ungewöhnliche Codekonstrukte enthalten. Solche Codekonstrukte können Folgendes implementieren:

  • verschleierten Code
  • Zustandsautomaten und Protokolle
  • C&C-Server-Kommunikation
  • String-Entschlüsselungsroutinen
  • kryptografische Algorithmen

Die folgenden Blogbeiträge enthalten weitere Informationen zu den zugrunde liegenden Heuristiken und zeigen deren Anwendungsfälle:

  • Automated Detection of Control-flow Flattening
  • Automated Detection of Obfuscated Code
  • Statistical Analysis to Detect Uncommon Code
  • Identification of API Functions in Binaries

Einige Beispielanwendungen finden Sie in examples. Darüber hinaus demonstriert der REcon-Vortrag „Unveiling Secrets in Binaries using Code Detection Strategies“ einige Anwendungsfälle. Die Folien finden Sie hier; die Aufzeichnung finden Sie hier.

Kernfunktionen

  • identifiziert interessante Codekonstrukte in großen Binärdateien
  • hebt disaligned Instructions in Binary Ninjas Graphenansicht hervor
  • effiziente und architekturunabhängige Implementierung
  • läuft als Hintergrundaufgabe
  • taggt identifizierte Funktionen automatisch mit der entsprechenden Heuristik oder Dienstprogramm
  • kann im UI- und im Headless-Modus verwendet werden

Installation

Das Tool kann über den Plugin-Manager von Binary Ninja installiert werden.

Für die Headless-Version gehen Sie wie folgt vor:

git clone https://github.com/mrphrazer/obfuscation_detection.git
cd obfuscation_detection

# obfuscation_detection installieren
pip install .

Verwendung

Das Plugin kann in der Benutzeroberfläche und im Headless-Modus verwendet werden.

Benutzeroberfläche

Wählen Sie Plugins -> Obfuscation Detection, um einzelne Heuristiken auszuführen, oder Plugins -> Obfuscation Detection -> Utils, um einzelne Dienstprogramme auszuführen. Der Befehl Plugins -> Obfuscation Detection -> All führt alle Heuristiken und alle Dienstprogramme gemeinsam aus.

Plugin-Menü

Die Ergebnisse werden im Log-Fenster angezeigt:

Binary Ninja-Protokoll

Durch Klicken auf die identifizierten Funktionsadressen navigiert Binary Ninja zur ausgewählten Funktion.

Headless

Um das Plugin im Headless-Modus zu verwenden, führen Sie scripts/detect_obfuscation.py aus:

$ python3 scripts/detect_obfuscation.py <binary>

Dies führt alle Heuristiken und alle Dienstprogramme aus. Für maschinenlesbare Ausgabe übergeben Sie --json:

$ python3 scripts/detect_obfuscation.py --json <binary>

Das JSON-Payload enthält alle Ergebnisse unter dem Schlüssel detections. Jede Erkennung hat eine stabile id für die Automatisierung und einen menschenlesbaren name. Jeder getaggte Funktionsfund enthält den Tag-Typ und die Beschreibung, die vom Binary-Ninja-Plugin verwendet werden.

Um nur die Zustandsautomaten-Heuristik im Headless-Modus auszuführen, verwenden Sie scripts/detect_state_machine.py:

$ python3 scripts/detect_state_machine.py [--json] <binary>

Erkennungsheuristiken

Das Plugin implementiert verschiedene Erkennungsheuristiken, um unterschiedliche Codekonstrukte zu erkennen. Im Folgenden beschreiben wir kurz die einzelnen Heuristiken und erläutern ihre Verwendung.

Large Basic Block

Die Large-Basic-Block-Heuristik identifiziert die obersten 10 % der Funktionen mit der größten durchschnittlichen Anzahl von Instruktionen pro Basisblock. Sie ermöglicht die Erkennung von

  • entrolltem Code
  • kryptografischen Implementierungen
  • Initialisierungsroutinen
  • arithmetischer Verschleierung / Mixed Boolean-Arithmetic

Complex Function

Die Complex-Function-Heuristik identifiziert die obersten 10 % der Funktionen mit den komplexesten Kontrollflussgraphen (basierend auf zyklomatischer Komplexität). Sie ermöglicht die Identifizierung von

  • komplexen Dispatch-Routinen und Protokollen
  • Zustandsautomaten
  • mit undurchsichtigen Prädikaten verschleierten Funktionen

State Machine

Die Zustandsautomaten-Heuristik nutzt graphentheoretische Eigenschaften, um Funktionen zu identifizieren, die Zustandsautomaten implementieren. Üblicherweise lassen sich solche Zustandsautomaten als switch-Anweisungen darstellen, die in einer Schleife abgearbeitet werden. Die Heuristik ermöglicht die Identifizierung von

  • Netzwerkprotokoll-Dispatch
  • Dateiparsinglogik
  • C&C-Server-Kommunikation / Befehlsdispatch
  • Kontrollflussabflachung (Control-Flow Flattening)

Uncommon Instruction Sequence

Die Uncommon-Instruction-Sequence-Heuristik führt eine statistische Analyse durch, um die obersten 10 % der Funktionen zu identifizieren, deren Codemuster von einem vorberechneten Grundwahrheitswert abweichen. Auf diese Weise ermöglicht die Heuristik die Identifizierung von

  • kryptografischen Implementierungen
  • intensiver Nutzung von Gleitkommaarithmetik
  • arithmetischer Verschleierung / Mixed Boolean-Arithmetic
  • generischen Verschleierungsmustern

Overlapping Instruction

Die Overlapping-Instruction-Heuristik identifiziert Funktionen mit disaligned Instructions (Instruktionsbytes werden von zwei verschiedenen Instruktionen gemeinsam genutzt). Die Heuristik identifiziert

  • fehlerhafte Disassemblierung (z. B. Daten, die als Code markiert sind)
  • undurchsichtige Prädikate, die in andere Instruktionen springen

Wird die Heuristik in der Benutzeroberfläche von Binary Ninja verwendet, werden überlappende Instruktionen auch in der Graphenansicht hervorgehoben.

Most Called Function

Die Most-Called-Function-Heuristik identifiziert die obersten 10 % der Funktionen mit der größten Anzahl von Aufrufen aus verschiedenen Funktionen. Auf diese Weise kann die Heuristik

  • String-Entschlüsselungsroutinen
  • Bibliotheksfunktionen in statisch gelinkten Binärdateien

identifizieren.

Loop Frequency

Die Heuristik identifiziert Funktionen mit einer hohen Anzahl von Schleifen. Diese Art von Funktionen könnte Folgendes implementieren:

  • eine komplexe Parsinglogik für strukturierte Datenformate
  • intensive algorithmische Berechnungen

Die Heuristik hilft auch dabei, potenzielle Leistungsengpässe zu lokalisieren.

Irreducible Loop

Die Heuristik identifiziert Funktionen mit seltenen und komplexen Schleifenstrukturen, die typischerweise auf Folgendes hindeuten:

  • aggressive Compileroptimierungen
  • handgeschriebenes Assembly
  • Verwendung von goto-Anweisungen
  • verschleierten Code

XOR Decryption Loop

Tool herunterladen