Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
EhTrace — ATrace é uma ferramenta para rastrear a execução de binários no Windows. | Kitploit
Ferramentas/GitHubGitHub/k2/ehtrace
Análise Dinâmica (Sandboxing)Análise de CódigoExploraçãoEngenharia ReversaDepuradoresFuzzingAnálise de Binários
GitHubk2/ehtrace

EhTrace

ATrace é uma ferramenta para rastrear a execução de binários no Windows.

Ver Repositório
243503há 9 mesesRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

EhTrace

LOGO

EhTrace (pronuncia-se "ATrace") é um framework de rastreamento e instrumentação binária de alto desempenho para Windows. Permite análise profunda de executáveis Windows em tempo de execução sem exigir código-fonte, modificações binárias ou depuração tradicional.

Visão Geral

EhTrace aproveita o Vectored Exception Handling (VEH) do Windows e técnicas de "block-stepping" para fornecer rastreamento abrangente da execução com sobrecarga mínima. Ao contrário de ferramentas tradicionais de depuração ou instrumentação, o EhTrace opera inteiramente no processo e não requer patches nos binários alvo.

Principais Funcionalidades

  • Modificação Binária Zero: Rastreie a execução sem alterar o binário alvo
  • Alto Desempenho: Block stepping em vez de single stepping atinge ~43 milhões de eventos por segundo
  • Cobertura de Código Completa: Detecção e rastreamento automático de blocos básicos
  • Monitoramento de Estado dos Registradores: Capture e analise estados dos registradores durante a execução
  • Nenhum Modo de Depuração Necessário: Funciona sem habilitar capacidades de depuração/trace MSR da CPU
  • Operação Intraprocesso: Sobrecarga mínima de troca de contexto comparado a depuradores tradicionais
  • Múltiplos Modos de Instrumentação: Suporte para vários cenários de rastreamento e análise

Capacidades Principais

  • Análise de Fluxo de Execução: Rastreie caminhos de execução do programa e fluxo de controle
Baixar ferramenta
  • Mapeamento de Cobertura de Código: Gere relatórios abrangentes de cobertura de código
  • Defesa contra RoP: Detecte e previna ataques de Programação Orientada a Retorno através do balanceamento call/ret
  • Key Escrow: Capacidades de interceptação e custódia de chaves criptográficas
  • Integração com Fuzzing: Instrumentação de fuzzing compatível com AFL (AWinAFL)
  • Resolução de Símbolos: Carregamento e resolução automática de símbolos via DIA2
  • Arquitetura

    root@kitploit:~
    flowchart TB
        subgraph Target["🎯 Processo Alvo"]
            direction TB
            APP[Código da Aplicação]
            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["⚡ Motor EhTrace"]
            direction TB
            BLOCK[Block Stepper]
            DISASM[Desmontador Capstone]
            FIGHTERS[BlockFighters]
            CTX[Gerenciador de Contexto]
            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["📊 Saída de Análise"]
            direction TB
            SHMEM[Log de Memória Compartilhada]
            GRAPHS[Gráficos Visuais]
            REPORTS[Relatórios de Cobertura]
            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 -->|Exceção| VEH
        VEH -->|Passo Único| BLOCK
        BLOCK -->|Instrução| DISASM
        DISASM -->|Análise| FIGHTERS
        FIGHTERS -->|Estado| CTX
        CTX -->|Eventos| SHMEM
        SHMEM -->|Dados| GRAPHS
        SHMEM -->|Dados| 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

    Princípios Operacionais Principais

    O EhTrace opera através de um pipeline sofisticado:

    1. 🛡️ Tratamento de Exceções: Registro de um Vectored Exception Handler (VEH)
    2. 👣 Block Stepping: Uso de exceções de passo único nos limites de blocos básicos
    3. 🔍 Desmontagem: Aproveitamento do Capstone para análise de instruções em tempo real
    4. 📝 Registro: Escrita de eventos de execução em memória compartilhada para análise externa
    5. ⚔️ Fighting: Aplicação de "BlockFighters" configuráveis para tarefas de segurança e análise

    O framework mantém o estado de execução por thread usando estruturas de contexto especializadas e fornece hooks para instrumentação personalizável.

    Desempenho

    root@kitploit:~
    graph LR
        subgraph Traditional["🐌 Depurador Tradicional"]
            T1[Passo Único]
            T2[Troca de Contexto]
            T3[Modo Kernel]
            T4[~1M eventos/seg]
            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 Step]
            E2[Intraprocesso]
            E3[Modo Usuário]
            E4[~43M eventos/seg]
            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

    O EhTrace atinge alto desempenho através de várias otimizações:

    • 🎯 Branch stepping vs single stepping: Rastrear apenas nos limites de blocos básicos
    • ⚡ Operação intraprocesso: Sem trocas de contexto de depurador
    • ⏱️ Gerenciamento de estado temporal: O VEH mantém naturalmente o estado de execução
    • 💾 Registro eficiente: Buffers de memória compartilhada para gravação de eventos de alta taxa de transferência

    📊 Benchmark: 428.833.152 eventos (32 bytes cada) capturados em 10 segundos = ~43M eventos/seg

    Exemplo de Saída

    Demonstração do CSW16 rastreando notepad.exe sem símbolos:

    Flame graph without symbols

    Grafo de blocos básicos com desmontagem Capstone:

    BB graph with disassembly

    Visualização de cobertura de código:

    BB graph coverage

    Componentes

    root@kitploit:~
    graph TD
        subgraph Core["🎯 Componentes Principais"]
            EH[EhTrace.dll<br/>Instrumentação Principal]
            AC[Acleanout<br/>Dump de Logs]
            AG[Agasm<br/>Gerador de Grafos]
            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["🔧 Ferramentas de Suporte"]
            AL[Aload<br/>Injetor de DLL]
            AP[Aprep<br/>EXE de Teste]
            AS[Astrace<br/>Rastreador de Pilha]
            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["🐛 Integração com Fuzzing"]
            AWA[AWinAFL<br/>Instrumentação AFL]
            style AWA fill:#ffccbc,stroke:#d84315,stroke-width:3px,color:#000
        end
        
        subgraph Viz["📊 Visualização"]
            WPF[WPFx<br/>Visualizador de Grafos]
            DIA[Dia2Sharp<br/>Resolvedor de Símbolos]
            ASF[AStackFolding<br/>Gráficos de Chamas]
            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 -->|Logs| AC
        AC -->|Dados| AG
        AG -->|Grafos| WPF
        AL -->|Injetar| EH
        DIA -->|Símbolos| AG
        ASF -->|Processar| 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

    O ecossistema EhTrace consiste em vários projetos integrados:

    Componentes Principais

    • EhTrace: A DLL principal de instrumentação (também pode ser compilada como EXE para testes)
    • Acleanout: Despeja logs de rastreamento da memória compartilhada criada pelo EhTrace
    • Agasm: Ferramenta de cola/desmontagem para gerar grafos com símbolos e integração Capstone

    Ferramentas de Suporte

    • Aload: Utilitário de injeção de DLL
    • Aprep: Executável de teste (EhTrace compilado como EXE)
    • Astrace: Utilitários de rastreamento de pilha
    • AKeyTest: Teste de custódia de chaves criptográficas

    Integração com Fuzzing

    • AWinAFL: Instrumentação de fuzzing compatível com AFL para Windows

    Visualização

    • WPFx: Visualização baseada em WPF usando a biblioteca de grafos MSAGL
    • Dia2Sharp: Wrapper C# DIA2 para processamento de símbolos
    • TestDump2: Aplicação de teste para Dia2Sharp
    • Amerger: Utilitários de mesclagem de logs
    • AStackFolding: Dobramento de pilha para geração de gráficos de chamas

    Pré-requisitos

    Requisitos de Compilação

    • Visual Studio 2015 ou posterior (toolchain C++)
    • Windows SDK
    • .NET Framework (para ferramentas de visualização)

    Dependências em Tempo de Execução

    • dbghelp.dll: Resolução de símbolos (incluída no diretório support)
    • symsrv.dll: Suporte a servidor de símbolos (incluída no diretório support)
    • Capstone: Motor de desmontagem (bibliotecas no diretório support)
    • MSAGL: Visualização de grafos (Microsoft Automatic Graph Layout)

    Compilação

    1. Abra EhTrace.sln no Visual Studio
    2. Selecione sua configuração alvo (Debug/Release) e plataforma (x86/x64)
    3. Compile a solução

    Para instruções detalhadas de compilação, veja BUILDING.md

    Uso

    Rastreamento Básico

    1. Compile ou obtenha EhTrace.dll
    2. Injete EhTrace.dll no processo alvo usando Aload ou seu método de injeção preferido
    3. Execute a aplicação alvo
    4. Colete dados de rastreamento usando Acleanout
    5. Visualize os resultados usando WPFx ou ferramentas de análise personalizadas

    Fluxo de Trabalho de Exemplo

    root@kitploit:~
    # Compilar EhTrace
    msbuild EhTrace.sln /p:Configuration=Release /p:Platform=x64
    
    # Injetar no alvo
    Aload.exe target.exe EhTrace.dll
    
    # Coletar dados de rastreamento
    Acleanout.exe > trace.log
    
    # Analisar com Agasm
    Agasm.exe trace.log output.graph
    

    Para documentação abrangente de uso, veja USAGE.md

    Configuração

    O EhTrace suporta configuração em tempo de execução através do framework BlockFighters. Configure o comportamento de rastreamento modificando a configuração do fighter na sua compilação.

    Fighters disponíveis:

    • RoP Fighter: Detecta cadeias de gadgets ROP
    • Key Escrow Fighter: Intercepta operações criptográficas
    • AFL Fighter: Fornece instrumentação para fuzzing
    • Fighters Personalizados: Implemente sua própria lógica de análise

    Desenvolvimento

    Estrutura do Projeto

    root@kitploit:~
    EhTrace/
    ├── EhTrace/          # DLL principal de instrumentação
    ├── prep/             # Ferramentas e utilitários de suporte
    ├── vis/              # Componentes de visualização
    ├── support/          # Dependências e recursos
    ├── doc/              # Documentação
    └── afl-fuzz/         # Integração com fuzzing AFL
    

    Arquivos Fonte Principais

    • EhTrace.cpp: Manipulador VEH principal e lógica central
    • BlockFighters.cpp: Implementação do framework de Fighters
    • Config.cpp: Gerenciamento de configuração e símbolos
    • GlobLog.cpp: Registro em memória compartilhada
    • KeyEscrow.cpp: Interceptação de chaves criptográficas
    • RoP-Defender.cpp: Lógica de detecção de ROP

    Licença

    Este projeto está licenciado sob a GNU Affero General Public License v3.0 - veja o arquivo LICENSE para detalhes.

    Copyright (C) 2014-2016 Shane Macaulay

    Contribuições

    Contribuições são bem-vindas! Por favor, garanta que seu código siga o estilo existente e inclua testes apropriados.

    Autor

    Shane Macaulay ([email protected])

    Agradecimentos

    • Capstone disassembly framework
    • Microsoft Automatic Graph Layout (MSAGL)
    • AFL fuzzing framework
    • A comunidade de pesquisa em segurança

    Referências

    Para mais detalhes técnicos, veja:

    • ARCHITECTURE.md - Documentação da arquitetura técnica
    • doc/ - Documentação e apresentações adicionais