Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
lighthouse — Un Coverage Explorer per Reverse Engineers | Kitploit
Strumenti/GitHubGitHub/gaasedelen/lighthouse
Analisi StaticaAnalisi Dinamica (Sandboxing)Analisi delle VulnerabilitàAnalisi del CodiceReverse EngineeringDebuggerFuzzingAnalisi di BinariPaper e Ricerca
GitHubgaasedelen/lighthouse

lighthouse

Un Coverage Explorer per Reverse Engineers

2.6k33647 mesi faRevisionato da Kitploit
Vedi Repository

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Lighthouse - Un Coverage Explorer per Reverse Engineer

Lighthouse Plugin

Panoramica

Lighthouse è un potente coverage explorer per il codice per IDA Pro e Binary Ninja, che fornisce ai ricercatori software controlli unici e interattivi per studiare le mappe di esecuzione di applicazioni native senza richiedere simboli o codice sorgente.

Questo progetto si è classificato 2° nell'IDA's 2017 Plug-In Contest ed è stato successivamente nominato ai Pwnie Awards 2021 per i suoi contributi all'industria della ricerca sulla sicurezza.

Un ringraziamento speciale a @0vercl0k per l'ispirazione.

Release

  • v0.9 -- Supporto Python 3, formati di coverage personalizzati, cross-ref di coverage, sottosistema di temi, e molto altro.
  • v0.8 -- Supporto Binary Ninja, report HTML di coverage, stile coerente, molte ottimizzazioni, correzioni di bug.
  • v0.7 -- Frida, demangling C++, menu contestuale, prefissi delle funzioni, ottimizzazioni, correzioni di bug.
  • v0.6 -- Intel pintool, complessità ciclomatica, caricamento batch, correzioni di bug.
  • v0.5 -- Ricerca, supporto IDA 7, molti miglioramenti, stabilità.
  • v0.4 -- La maggior parte dei calcoli è ora asincrona, correzioni di bug.
  • v0.3 -- Composizione della coverage, shell di composizione interattiva.
  • v0.2 -- Supporto multifile, miglioramenti delle prestazioni, correzioni di bug.
  • v0.1 -- Rilascio iniziale

Installazione

Lighthouse è un plugin Python 2/3 multipiattaforma (Windows, macOS, Linux). Non richiede dipendenze di terze parti, rendendo il codice sia portabile che facile da installare.

Usa le istruzioni riportate di seguito per il tuo disassembler di riferimento.

Installazione su IDA

  1. Dalla console Python di IDA, esegui il seguente comando per trovare la sua directory dei plugin:
    • import idaapi, os; print(os.path.join(idaapi.get_user_idadir(), "plugins"))
  2. Copia il contenuto della cartella /plugins/ di questo repository nella directory elencata.
  3. Riavvia il tuo disassembler.

Installazione su Binary Ninja

Lighthouse può essere installato tramite il plugin manager di Binary Ninja, con supporto per la versione v3.5 e successive.

  1. Apri il plugin manager di Binary Ninja navigando i seguenti sottomenu:
    • Edit -> Preferences -> Manage Plugins
  2. Cerca Lighthouse nel plugin manager e clicca il pulsante Enable in basso a destra.
  3. Riavvia il tuo disassembler.

Utilizzo

Una volta installato correttamente, saranno disponibili alcune nuove voci di menu nel disassembler. Questi sono i punti di ingresso per un utente per caricare i dati di coverage e iniziare a usare Lighthouse.

Lighthouse Menu Entries

Lighthouse è in grado di caricare alcuni diversi 'flavors' di dati di coverage. Per generare dati di coverage che possano essere caricati in Lighthouse, consulta il README nella directory coverage di questo repository.

Coverage Painting

Mentre Lighthouse è in uso, esso 'dipingerà' i dati di coverage attivi su tutti i visualizzatori di codice disponibili nel disassembler. Nello specifico, questo si applicherà al disassemblaggio lineare, al grafo e alle finestre del decompilatore.

Lighthouse Coverage Painting

In Binary Ninja, sono supportate solo le viste di disassemblaggio lineare, grafo e IL. Il supporto per la colorazione dell'output del decompilatore in Binary Ninja sarà aggiunto a Lighthouse nel prossimo futuro, man mano che la funzionalità si stabilizza.

Coverage Overview

La Coverage Overview è un widget agganciabile che si aprirà una volta che la coverage è stata caricata in Lighthouse.

Lighthouse Coverage Overview

Questo widget interattivo fornisce una vista a livello di funzione dei dati di coverage caricati. Ospita inoltre una serie di strumenti per gestire i dati caricati e guidare forme più avanzate di analisi della coverage.

Menu Contestuale

Facendo clic con il tasto destro sulla tabella nella Coverage Overview si produrrà un menu contestuale con alcune comodità di base per estrarre informazioni dalla tabella, o manipolare il database come parte del tuo processo di reverse engineering.

Lighthouse Context Menu

Se ci sono altre azioni che pensi potrebbero essere utili da aggiungere a questo menu contestuale, apri una issue e saranno prese in considerazione per una futura release di Lighthouse.

Coverage ComboBox

La coverage caricata e le composizioni costruite dall'utente possono essere selezionate o eliminate tramite la combobox della coverage.

Lighthouse Coverage ComboBox

Report HTML di Coverage

Lighthouse può generare report HTML di coverage rudimentali. Un report di esempio è visibile qui.

Lighthouse HTML Report

Coverage Shell

In fondo alla finestra della coverage overview si trova la coverage shell. Questa shell può essere usata per eseguire operazioni basate sulla logica che combinano o manipolano i set di coverage caricati.

Lighthouse Coverage Composition

Questa funzionalità è estremamente utile nell'esplorare le relazioni dell'esecuzione del programma attraverso esecuzioni multiple. In altre parole, la shell può essere usata per fare il 'diff' dell'esecuzione tra set di coverage ed estrarre un significato più profondo che altrimenti è oscurato nel rumore delle loro singole parti.

Sintassi di Composizione

La composizione della coverage, o Composing come dimostrato sopra, si ottiene attraverso una semplice grammatica di espressioni e simboli di coverage 'shorthand' (da A a Z) sulla shell di composizione.

Token della Grammatica

  • Operatori Logici: |, &, ^, -
  • Simbolo di Coverage: A, B, C, ..., Z, *
  • Parentesi: (...)

Esempi di Composizioni

Scarica lo strumento