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
EhTrace — ATrace ist ein Tool zur Verfolgung der Ausführung von Binärdateien unter Windows. | Kitploit
Tools/GitHubGitHub/k2/ehtrace
Dynamische Analyse (Sandboxing)Code-AnalyseExploitationReverse EngineeringDebuggerFuzzingBinäranalyse
GitHubk2/ehtrace

EhTrace

ATrace ist ein Tool zur Verfolgung der Ausführung von Binärdateien unter Windows.

Repository anzeigen
243503vor 9 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

EhTrace

LOGO

EhTrace (ausgesprochen "ATrace") ist ein leistungsfähiges Framework zur binären Ablaufverfolgung und Instrumentierung für Windows. Es ermöglicht eine tiefgehende Laufzeitanalyse von Windows-Executables, ohne dass Quellcode, binäre Modifikationen oder traditionelles Debugging erforderlich sind.

Übersicht

EhTrace nutzt die Windows Vectored Exception Handling (VEH) und Block-Stepping-Techniken, um eine umfassende Ausführungsverfolgung mit minimalem Overhead zu bieten. Im Gegensatz zu herkömmlichen Debugging- oder Instrumentierungswerkzeugen arbeitet EhTrace vollständig prozessintern und erfordert keine Patches an den Zielbinaries.

Hauptmerkmale

  • Keine binäre Modifikation: Verfolgung der Ausführung ohne Änderung der Zielbinärdatei
  • Hohe Leistung: Block-Stepping anstelle von Single-Stepping erreicht ~43 Millionen Ereignisse pro Sekunde
  • Vollständige Codeabdeckung: Automatische Erkennung und Verfolgung von Basisblöcken
  • Registerstatus-Überwachung: Erfassen und Analysieren von Registerzuständen während der Ausführung
  • Kein Debug-Modus erforderlich: Funktioniert ohne Aktivierung der CPU-Debug-/Trace-MSR-Fähigkeiten
  • Prozessinterner Betrieb: Minimaler Kontextwechsel-Overhead im Vergleich zu herkömmlichen Debuggern
  • Mehrere Instrumentierungsmodi: Unterstützung für verschiedene Verfolgungs- und Analyseszenarien

Kernfähigkeiten

  • Ausführungsflussanalyse: Verfolgung von Programmausführungspfaden und Kontrollfluss
Tool herunterladen
  • Codeabdeckungszuordnung: Generierung umfassender Codeabdeckungsberichte
  • RoP-Abwehr: Erkennung und Verhinderung von Return-Oriented-Programming-Angriffen durch Call/Ret-Balancierung
  • Schlüsselhinterlegung: Kryptografische Schlüsselabfang- und Hinterlegungsmöglichkeiten
  • Fuzzing-Integration: AFL-kompatible Fuzzing-Instrumentierung (AWinAFL)
  • Symbolauflösung: Automatisches Laden und Auflösen von Symbolen über DIA2
  • Architektur

    root@kitploit:~
    flowchart TB
        subgraph Target["🎯 Zielprozess"]
            direction TB
            APP[Anwendungscode]
            VEH[Vectored Exception Handler]
            style APP fill:#e1f5ff,stroke:#01579b,stroke-width:3px,color:#000
            style VEH fill:#fff3e0,stroke:#e65100,stroke-width:3px,color:#000
        end
        
        subgraph EhTrace["⚡ EhTrace Engine"]
            direction TB
            BLOCK[Block-Stepper]
            DISASM[Capstone Disassembler]
            FIGHTERS[BlockFighters]
            CTX[Kontext-Manager]
            style BLOCK fill:#f3e5f5,stroke:#4a148c,stroke-width:3px,color:#000
            style DISASM fill:#e8f5e9,stroke:#1b5e20,stroke-width:3px,color:#000
            style FIGHTERS fill:#ffebee,stroke:#b71c1c,stroke-width:3px,color:#000
            style CTX fill:#e0f2f1,stroke:#004d40,stroke-width:3px,color:#000
        end
        
        subgraph Output["📊 Analyseausgabe"]
            direction TB
            SHMEM[Shared Memory Log]
            GRAPHS[Visuelle Graphen]
            REPORTS[Abdeckungsberichte]
            style SHMEM fill:#fce4ec,stroke:#880e4f,stroke-width:3px,color:#000
            style GRAPHS fill:#f1f8e9,stroke:#33691e,stroke-width:3px,color:#000
            style REPORTS fill:#fff8e1,stroke:#f57f17,stroke-width:3px,color:#000
        end
        
        APP -->|Exception| VEH
        VEH -->|Single Step| BLOCK
        BLOCK -->|Instruction| DISASM
        DISASM -->|Analyse| FIGHTERS
        FIGHTERS -->|Zustand| CTX
        CTX -->|Ereignisse| SHMEM
        SHMEM -->|Daten| GRAPHS
        SHMEM -->|Daten| REPORTS
        
        style Target fill:#e3f2fd,stroke:#0d47a1,stroke-width:4px
        style EhTrace fill:#f3e5f5,stroke:#6a1b9a,stroke-width:4px
        style Output fill:#e8f5e9,stroke:#2e7d32,stroke-width:4px

    Kernbetriebsprinzipien

    EhTrace arbeitet über eine anspruchsvolle Pipeline:

    1. 🛡️ Ausnahmebehandlung: Registrieren eines Vectored Exception Handlers (VEH)
    2. 👣 Block-Stepping: Verwendung von Single-Step-Ausnahmen an Basisblockgrenzen
    3. 🔍 Disassemblierung: Nutzung von Capstone für die fliegende Befehlsanalyse
    4. 📝 Protokollierung: Schreiben von Ausführungsereignissen in gemeinsamen Speicher für externe Analyse
    5. ⚔️ Kämpfen: Anwendung konfigurierbarer "BlockFighters" für Sicherheits- und Analyseaufgaben

    Das Framework verwaltet den Ausführungszustand pro Thread mithilfe spezialisierter Kontextstrukturen und bietet Hooks für anpassbare Instrumentierung.

    Leistung

    root@kitploit:~
    graph LR
        subgraph Traditional["🐌 Traditioneller Debugger"]
            T1[Einzelschritt]
            T2[Kontextwechsel]
            T3[Kernel-Modus]
            T4[~1M Ereignisse/s]
            style T1 fill:#ffcdd2,stroke:#c62828,stroke-width:2px,color:#000
            style T2 fill:#ffcdd2,stroke:#c62828,stroke-width:2px,color:#000
            style T3 fill:#ffcdd2,stroke:#c62828,stroke-width:2px,color:#000
            style T4 fill:#ef5350,stroke:#b71c1c,stroke-width:3px,color:#fff
        end
        
        subgraph EhTrace["⚡ EhTrace"]
            E1[Block-Sprung]
            E2[Prozessintern]
            E3[Benutzermodus]
            E4[~43M Ereignisse/s]
            style E1 fill:#c8e6c9,stroke:#2e7d32,stroke-width:2px,color:#000
            style E2 fill:#c8e6c9,stroke:#2e7d32,stroke-width:2px,color:#000
            style E3 fill:#c8e6c9,stroke:#2e7d32,stroke-width:2px,color:#000
            style E4 fill:#66bb6a,stroke:#1b5e20,stroke-width:3px,color:#fff
        end
        
        T1 --> T2 --> T3 --> T4
        E1 --> E2 --> E3 --> E4
        
        style Traditional fill:#ffebee,stroke:#d32f2f,stroke-width:3px
        style EhTrace fill:#e8f5e9,stroke:#388e3c,stroke-width:3px

    EhTrace erreicht hohe Leistung durch mehrere Optimierungen:

    • 🎯 Verzweigungsschritt vs. Einzelschritt: Nur an Basisblockgrenzen verfolgen
    • ⚡ Prozessinterner Betrieb: Keine Debugger-Kontextwechsel
    • ⏱️ Temporäres Zustandsmanagement: VEH behält den Ausführungszustand natürlich bei
    • 💾 Effiziente Protokollierung: Gemeinsame Speicherpuffer für ereignisreiche Aufzeichnung mit hohem Durchsatz

    📊 Benchmark: 428.833.152 Ereignisse (jeweils 32 Bytes) in 10 Sekunden aufgezeichnet = ~43M Ereignisse/s

    Beispielausgabe

    CSW16-Demo-Tracing von notepad.exe ohne Symbole:

    Flame Graph ohne Symbole

    Basisblock-Graph mit Capstone-Disassemblierung:

    BB-Graph mit Disassemblierung

    Codeabdeckungsvisualisierung:

    BB-Graph-Abdeckung

    Komponenten

    root@kitploit:~
    graph TD
        subgraph Core["🎯 Kernkomponenten"]
            EH[EhTrace.dll<br/>Hauptinstrumentierung]
            AC[Acleanout<br/>Protokoll-Dumper]
            AG[Agasm<br/>Graph-Generator]
            style EH fill:#e1bee7,stroke:#6a1b9a,stroke-width:3px,color:#000
            style AC fill:#c5cae9,stroke:#3949ab,stroke-width:3px,color:#000
            style AG fill:#b2dfdb,stroke:#00695c,stroke-width:3px,color:#000
        end
        
        subgraph Tools["🔧 Hilfswerkzeuge"]
            AL[Aload<br/>DLL-Injektor]
            AP[Aprep<br/>Test-EXE]
            AS[Astrace<br/>Stack-Tracer]
            style AL fill:#ffe0b2,stroke:#e65100,stroke-width:3px,color:#000
            style AP fill:#f8bbd0,stroke:#c2185b,stroke-width:3px,color:#000
            style AS fill:#d1c4e9,stroke:#512da8,stroke-width:3px,color:#000
        end
        
        subgraph Fuzzing["🐛 Fuzzing-Integration"]
            AWA[AWinAFL<br/>AFL-Instrumentierung]
            style AWA fill:#ffccbc,stroke:#d84315,stroke-width:3px,color:#000
        end
        
        subgraph Viz["📊 Visualisierung"]
            WPF[WPFx<br/>Graph-Anzeige]
            DIA[Dia2Sharp<br/>Symbolauflöser]
            ASF[AStackFolding<br/>Flame-Graphen]
            style WPF fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px,color:#000
            style DIA fill:#fff9c4,stroke:#f9a825,stroke-width:3px,color:#000
            style ASF fill:#ffecb3,stroke:#ff8f00,stroke-width:3px,color:#000
        end
        
        EH -->|Protokolle| AC
        AC -->|Daten| AG
        AG -->|Graphen| WPF
        AL -->|Inject| EH
        DIA -->|Symbole| AG
        ASF -->|Verarbeiten| AC
        AWA -->|Variante| EH
        
        style Core fill:#f3e5f5,stroke:#7b1fa2,stroke-width:4px
        style Tools fill:#fff3e0,stroke:#ef6c00,stroke-width:4px
        style Fuzzing fill:#fbe9e7,stroke:#bf360c,stroke-width:4px
        style Viz fill:#e8f5e9,stroke:#388e3c,stroke-width:4px

    Das EhTrace-Ökosystem besteht aus mehreren integrierten Projekten:

    Kernkomponenten

    • EhTrace: Die Hauptinstrumentierungs-DLL (kann auch als EXE zum Testen erstellt werden)
    • Acleanout: Liest Trace-Protokolle aus dem gemeinsamen Speicher, der von EhTrace erstellt wurde
    • Agasm: Verklebungs-/Disassemblierungswerkzeug zur Generierung von Graphen mit Symbolen und Capstone-Integration

    Hilfswerkzeuge

    • Aload: DLL-Injektionsprogramm
    • Aprep: Test-Executable (EhTrace als EXE erstellt)
    • Astrace: Stack-Tracing-Dienstprogramme
    • AKeyTest: Test für kryptografische Schlüsselhinterlegung

    Fuzzing-Integration

    • AWinAFL: AFL-kompatible Fuzzing-Instrumentierung für Windows

    Visualisierung

    • WPFx: WPF-basierte Visualisierung mit der MSAGL-Graphbibliothek
    • Dia2Sharp: C#-Wrapper für DIA2 zur Symbolverarbeitung
    • TestDump2: Testanwendung für Dia2Sharp
    • Amerger: Dienstprogramme zum Zusammenführen von Protokollen
    • AStackFolding: Stack-Trace-Faltung zur Generierung von Flame-Graphen

    Voraussetzungen

    Build-Anforderungen

    • Visual Studio 2015 oder höher (C++-Toolchain)
    • Windows SDK
    • .NET Framework (für Visualisierungswerkzeuge)

    Laufzeitabhängigkeiten

    • dbghelp.dll: Symbolauflösung (im Support-Verzeichnis enthalten)
    • symsrv.dll: Symbolserver-Unterstützung (im Support-Verzeichnis enthalten)
    • Capstone: Disassemblierungs-Engine (Bibliotheken im Support-Verzeichnis)
    • MSAGL: Graphvisualisierung (Microsoft Automatic Graph Layout)

    Build

    1. Öffnen Sie EhTrace.sln in Visual Studio
    2. Wählen Sie Ihre Zielkonfiguration (Debug/Release) und Plattform (x86/x64)
    3. Erstellen Sie die Projektmappe

    Ausführliche Build-Anweisungen finden Sie in BUILDING.md

    Verwendung

    Grundlegende Ablaufverfolgung

    1. Erstellen Sie EhTrace.dll oder besorgen Sie sie
    2. Injizieren Sie EhTrace.dll mit Aload oder Ihrer bevorzugten Injektionsmethode in den Zielprozess
    3. Führen Sie die Zielanwendung aus
    4. Sammeln Sie Trace-Daten mit Acleanout
    5. Visualisieren Sie die Ergebnisse mit WPFx oder benutzerdefinierten Analysetools

    Beispiel-Workflow

    root@kitploit:~
    # EhTrace erstellen
    msbuild EhTrace.sln /p:Configuration=Release /p:Platform=x64
    
    # In Ziel injizieren
    Aload.exe target.exe EhTrace.dll
    
    # Trace-Daten sammeln
    Acleanout.exe > trace.log
    
    # Mit Agasm analysieren
    Agasm.exe trace.log output.graph
    

    Eine umfassende Nutzungsdokumentation finden Sie in USAGE.md

    Konfiguration

    EhTrace unterstützt Laufzeitkonfiguration über das BlockFighters-Framework. Konfigurieren Sie das Trace-Verhalten, indem Sie die Fighter-Konfiguration in Ihrem Build ändern.

    Verfügbare Fighter:

    • RoP-Fighter: Erkennt ROP-Gadget-Ketten
    • Key-Escrow-Fighter: Fängt kryptografische Operationen ab
    • AFL-Fighter: Stellt Fuzzing-Instrumentierung bereit
    • Benutzerdefinierte Fighter: Implementieren Sie Ihre eigene Analyselogik

    Entwicklung

    Projektstruktur

    root@kitploit:~
    EhTrace/
    ├── EhTrace/          # Kern-Instrumentierungs-DLL
    ├── prep/             # Hilfswerkzeuge und Dienstprogramme
    ├── vis/              # Visualisierungskomponenten
    ├── support/          # Abhängigkeiten und Ressourcen
    ├── doc/              # Dokumentation
    └── afl-fuzz/         # AFL-Fuzzing-Integration
    

    Wichtige Quelldateien

    • EhTrace.cpp: Haupt-VEH-Handler und Kernlogik
    • BlockFighters.cpp: Implementierung des Fighter-Frameworks
    • Config.cpp: Konfigurations- und Symbolverwaltung
    • GlobLog.cpp: Shared-Memory-Protokollierung
    • KeyEscrow.cpp: Kryptografischer Schlüsselabfang
    • RoP-Defender.cpp: ROP-Erkennungslogik

    Lizenz

    Dieses Projekt ist unter der GNU Affero General Public License v3.0 lizenziert – siehe LICENSE für Details.

    Copyright (C) 2014-2016 Shane Macaulay

    Beitragen

    Beiträge sind willkommen! Stellen Sie sicher, dass Ihr Code dem vorhandenen Stil folgt und geeignete Tests enthält.

    Autor

    Shane Macaulay ([email protected])

    Danksagungen

    • Capstone Disassembly Framework
    • Microsoft Automatic Graph Layout (MSAGL)
    • AFL Fuzzing Framework
    • Die Sicherheitsforschungsgemeinschaft

    Referenzen

    Für weitere technische Details siehe:

    • ARCHITECTURE.md – Technische Architekturdokumentation
    • doc/ – Zusätzliche Dokumentation und Präsentationen