Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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
EhTrace — ATrace est un outil pour tracer l'exécution de binaires sous Windows. | Kitploit
Outils/GitHubGitHub/k2/ehtrace
Analyse Dynamique (Sandboxing)Analyse de CodeExploitationRétro-ingénierieDébogueursFuzzingAnalyse de Binaires
GitHubk2/ehtrace

EhTrace

ATrace est un outil pour tracer l'exécution de binaires sous Windows.

Voir le dépôt
2435016il y a 10 moisVé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

EhTrace

LOGO

EhTrace (prononcé « ATrace ») est un framework de traçage et d’instrumentation binaire haute performance pour Windows. Il permet une analyse approfondie de l’exécution des exécutables Windows sans nécessiter de code source, de modifications binaires ni de débogage traditionnel.

Présentation

EhTrace exploite la gestion vectorisée des exceptions (VEH) de Windows ainsi que des techniques de pas-à-pas par blocs pour fournir un traçage complet de l’exécution avec une surcharge minimale. Contrairement aux outils de débogage ou d’instrumentation traditionnels, EhTrace opère entièrement dans le processus et ne nécessite aucune modification des binaires cibles.

Fonctionnalités clés

  • Aucune modification binaire : tracer l’exécution sans altérer le binaire cible
  • Haute performance : le pas-à-pas par blocs atteint environ 43 millions d’événements par seconde
  • Couverture de code complète : détection et suivi automatiques des blocs de base
  • Surveillance des registres : capture et analyse des états des registres pendant l’exécution
  • Aucun mode débogage requis : fonctionne sans activer les capacités de débogage/traçage MSR du CPU
  • Opération intra-processus : surcharge réduite de changement de contexte par rapport aux débogueurs classiques
  • Plusieurs modes d’instrumentation : prise en charge de divers scénarios de traçage et d’analyse

Capacités principales

  • Analyse du flux d’exécution : suivi des chemins d’exécution et du flux de contrôle
  • Cartographie de la couverture de code : génération de rapports complets de couverture de code
  • Défense RoP : détection et prévention des attaques de programmation orientée retour (ROP) par équilibrage des appels/retours
  • Séquestration de clés : interception et séquestration de clés cryptographiques
  • Intégration fuzzing : instrumentation de fuzzing compatible AFL (AWinAFL)
  • Résolution de symboles : chargement et résolution automatiques des symboles via DIA2

Architecture

flowchart TB
    subgraph Cible["🎯 Processus cible"]
        direction TB
        APP[Code applicatif]
        VEH[Gestionnaire vectorisé d’exceptions]
        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["⚡ Moteur EhTrace"]
        direction TB
        BLOCK[Pas-à-pas par blocs]
        DISASM[Désassembleur Capstone]
        FIGHTERS[BlockFighters]
        CTX[Gestionnaire de contexte]
        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 Sortie["📊 Analyse en sortie"]
        direction TB
        SHMEM[Mémoire partagée – journal]
        GRAPHS[Graphiques visuels]
        REPORTS[Rapports de couverture]
        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 -->|Pas-à-pas| BLOCK
    BLOCK -->|Instruction| DISASM
    DISASM -->|Analyse| FIGHTERS
    FIGHTERS -->|État| CTX
    CTX -->|Événements| SHMEM
    SHMEM -->|Données| GRAPHS
    SHMEM -->|Données| REPORTS
    
    style Cible fill:#e3f2fd,stroke:#0d47a1,stroke-width:4px
    style EhTrace fill:#f3e5f5,stroke:#6a1b9a,stroke-width:4px
    style Sortie fill:#e8f5e9,stroke:#2e7d32,stroke-width:4px

Principes de fonctionnement fondamentaux

EhTrace fonctionne via un pipeline sophistiqué :

  1. 🛡️ Gestion des exceptions : enregistrement d’un gestionnaire vectorisé d’exceptions (VEH)
  2. 👣 Pas-à-pas par blocs : utilisation d’exceptions de pas-à-pas aux limites des blocs de base
  3. 🔍 Désassemblage : exploitation de Capstone pour l’analyse d’instructions à la volée
  4. 📝 Journalisation : écriture des événements d’exécution dans une mémoire partagée pour analyse externe
  5. ⚔️ Fighters : application de « BlockFighters » configurables pour la sécurité et les tâches d’analyse

Le framework maintient l’état d’exécution par thread à l’aide de structures de contexte spécialisées et fournit des points d’accroche pour une instrumentation personnalisable.

Performance

graph LR
    subgraph Traditionnel["🐌 Débogueur traditionnel"]
        T1[Pas-à-pas unique]
        T2[Changement de contexte]
        T3[Mode noyau]
        T4[~1M événements/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[Pas-à-pas par blocs]
        E2[Intra-processus]
        E3[Mode utilisateur]
        E4[~43M événements/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 Traditionnel fill:#ffebee,stroke:#d32f2f,stroke-width:3px
    style EhTrace fill:#e8f5e9,stroke:#388e3c,stroke-width:3px

EhTrace atteint des performances élevées grâce à plusieurs optimisations :

  • 🎯 Pas-à-pas par branche vs pas-à-pas unique : traçage uniquement aux limites des blocs de base
  • ⚡ Opération intra-processus : aucun changement de contexte de débogueur
  • ⏱️ Gestion temporelle de l’état : le VEH maintient naturellement l’état d’exécution
  • 💾 Journalisation efficace : tampons en mémoire partagée pour un enregistrement à haut débit

📊 Benchmark : 428 833 152 événements (32 octets chacun) capturés en 10 secondes = ~43M événements/s

Exemple de sortie

Trace de démonstration CSW16 de notepad.exe sans symboles :

Flame graph sans symboles

Graphe de blocs de base avec désassemblage Capstone :

Graphe BB avec désassemblage

Visualisation de la couverture de code :

Couverture du graphe BB

Composants

Télécharger l’outil