Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
lighthouse — Um Explorador de Cobertura para Engenheiros Reversos | Kitploit
Ferramentas/GitHubGitHub/gaasedelen/lighthouse
Análise EstáticaAnálise Dinâmica (Sandboxing)Análise de VulnerabilidadesAnálise de CódigoEngenharia ReversaDepuradoresFuzzingAnálise de BináriosPapers e Pesquisa
GitHubgaasedelen/lighthouse

lighthouse

Um Explorador de Cobertura para Engenheiros Reversos

2.6k3364há 7 mesesRevisado pelo Kitploit
Ver Repositório

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

Lighthouse - Um Explorador de Cobertura para Engenheiros Reversos

Lighthouse Plugin

Visão Geral

Lighthouse é um poderoso explorador de cobertura de código para IDA Pro e Binary Ninja, proporcionando aos pesquisadores de software controles exclusivamente interativos para estudar mapas de execução de aplicações nativas sem exigir símbolos ou código-fonte.

Este projeto ficou em 2º lugar no Concurso de Plug-Ins de 2017 da IDA e mais tarde foi nomeado no Pwnie Awards de 2021 por suas contribuições à indústria de pesquisa de segurança.

Agradecimentos especiais a @0vercl0k pela inspiração.

Versões

  • v0.9 -- Suporte a Python 3, formatos de cobertura personalizados, referências cruzadas de cobertura, subsistema de temas, muito mais.
  • v0.8 -- Suporte ao Binary Ninja, relatórios de cobertura em HTML, estilo consistente, muitos ajustes, correções de bugs.
  • v0.7 -- Frida, desmangling de C++, menu de contexto, prefixação de funções, ajustes, correções de bugs.
  • v0.6 -- Intel pintool, complexidade ciclomática, carregamento em lote, correções de bugs.
  • v0.5 -- Busca, suporte ao IDA 7, muitas melhorias, estabilidade.
  • v0.4 -- A maior parte da computação agora é assíncrona, correções de bugs.
  • v0.3 -- Composição de cobertura, shell de composição interativo.
  • v0.2 -- Suporte a múltiplos arquivos, melhorias de desempenho, correções de bugs.
  • v0.1 -- Versão inicial

Instalação

Lighthouse é um plugin Python 2/3 multiplataforma (Windows, macOS, Linux). Ele não possui dependências de terceiros, tornando o código portátil e fácil de instalar.

Use as instruções abaixo para o seu desassemblador respectivo.

Instalação no IDA

  1. No console Python do IDA, execute o seguinte comando para encontrar seu diretório de plugins:
    • import idaapi, os; print(os.path.join(idaapi.get_user_idadir(), "plugins"))
  2. Copie o conteúdo da pasta /plugins/ deste repositório para o diretório listado.
  3. Reinicie seu desassemblador.

Instalação no Binary Ninja

Lighthouse pode ser instalado através do gerenciador de plugins do Binary Ninja, com suporte à v3.5 e mais recentes.

  1. Abra o gerenciador de plugins do Binary Ninja navegando pelos seguintes submenus:
    • Edit -> Preferences -> Manage Plugins
  2. Procure por Lighthouse no gerenciador de plugins e clique no botão Enable no canto inferior direito.
  3. Reinicie seu desassemblador.

Uso

Uma vez instalado corretamente, haverá algumas novas entradas de menu disponíveis no desassemblador. Estes são os pontos de entrada para um usuário carregar dados de cobertura e começar a usar o Lighthouse.

Lighthouse Menu Entries

Lighthouse é capaz de carregar alguns 'sabores' diferentes de dados de cobertura. Para gerar dados de cobertura que possam ser carregados no Lighthouse, consulte o README no diretório coverage deste repositório.

Pintura de Cobertura

Enquanto o Lighthouse está em uso, ele irá 'pintar' os dados de cobertura ativos em todos os visualizadores de código disponíveis no desassemblador. Especificamente, isso se aplicará às suas janelas de desassemblagem linear, grafo e descompilador.

Lighthouse Coverage Painting

No Binary Ninja, apenas as visualizações de desassemblagem linear, grafo e IL são suportadas. O suporte para pintura da saída do descompilador no Binary Ninja será adicionado ao Lighthouse em um futuro próximo, à medida que o recurso se estabilizar.

Visão Geral da Cobertura

A Visão Geral da Cobertura é um widget acoplável que será aberto assim que a cobertura for carregada no Lighthouse.

Lighthouse Coverage Overview

Este widget interativo fornece uma visão em nível de função dos dados de cobertura carregados. Ele também abriga uma série de ferramentas para gerenciar os dados carregados e conduzir formas mais avançadas de análise de cobertura.

Menu de Contexto

Clicar com o botão direito na tabela da Visão Geral da Cobertura produzirá um menu de contexto com algumas comodidades básicas para extrair informações da tabela, ou manipular o banco de dados como parte do seu processo de engenharia reversa.

Lighthouse Context Menu

Se houver outras ações que você acha que podem ser úteis para adicionar a este menu de contexto, por favor abra uma issue e elas serão consideradas para uma versão futura do Lighthouse.

ComboBox de Cobertura

Coberturas carregadas e composições construídas pelo usuário podem ser selecionadas ou excluídas através do combobox de cobertura.

Lighthouse Coverage ComboBox

Relatório de Cobertura em HTML

Lighthouse pode gerar relatórios rudimentares de cobertura em HTML. Um exemplo de relatório pode ser visto aqui.

Lighthouse HTML Report

Shell de Cobertura

Na parte inferior da janela de visão geral da cobertura está o shell de cobertura. Este shell pode ser usado para realizar operações baseadas em lógica que combinam ou manipulam os conjuntos de cobertura carregados.

Lighthouse Coverage Composition

Este recurso é extremamente útil para explorar as relações de execução do programa em múltiplas execuções. Em outras palavras, o shell pode ser usado para 'diferenciar' a execução entre conjuntos de cobertura e extrair um significado mais profundo que de outra forma está obscurecido dentro do ruído de suas partes individuais.

Sintaxe de Composição

A composição de cobertura, ou Composing como demonstrado acima, é alcançada através de uma gramática de expressão simples e símbolos de cobertura 'abreviados' (A a Z) no shell de composição.

Tokens da Gramática

  • Operadores Lógicos: |, &, ^, -
  • Símbolo de Cobertura: A, B, C, ..., Z, *
  • Parênteses: (...)

Exemplos de Composições

Baixar ferramenta