Tool

Lighthouse

Code-coverage explorer plugin for IDA Pro and Binary Ninja that loads execution traces of native programs and paints the executed code across the disassembler's views, without needing symbols or source. Its coverage overview lists per-function coverage, and a composing shell combines loaded coverage sets with logical operators to diff runs, filter functions and jump to addresses, while coverage cross-references show which of many batch-loaded sets executed a block. It reads DynamoRIO drcov logs, module+offset, absolute-address and Tenet traces, writes basic HTML coverage reports, and ships a prototype Intel Pin tool and a Frida script that produce drcov-compatible logs.

Requirements & limits

  • Release at review: v0.9.3, published 2024-02-05 as a servicing release that adds full drcov v3 support and Binary Ninja/PySide6 fixes; the reviewed master commit is that tag. The develop branch is nine commits ahead with IDA 9.x, 9.2 and 9.3 compatibility fixes from 2025-2026 and a 0.9.4 development version, none of them released.
  • Requires IDA Pro 7 or newer (the IDA layer stops on IDA 6) or Binary Ninja, where the README says plugin-manager installation supports v3.5 and newer; for IDA the README copies the plugins folder into the user plugin directory. The README describes a cross-platform Windows, macOS and Linux Python 2/3 plugin with no third-party dependencies. In Binary Ninja, coverage is painted in linear, graph and IL views but not decompiler output.
  • Coverage is collected separately against the user's own target: the coverage README shows DynamoRIO drcov, the bundled CodeCoverage pintool (a prototype; the release attaches Windows builds for Pin 3.30, and macOS and Linux users build it against their own Intel Pin download) and the experimental frida-drcov.py, which its README recommends mainly for mobile applications. Absolute-address traces must match the database's address space; unmapped addresses are discarded, and other modules' hits in module+offset traces are not loaded.
  • MIT for Lighthouse and for the contributed pintool. Opening the coverage overview checks the GitHub releases API for a newer version. No coverage was collected or loaded.

About this entry

Type
Tool
Category
Debugging and dynamic analysis
Relationship
Foundation tool
Targets
Binary

Sources reviewed

The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.

Report an outdated entry Suggest a translation fix

Primary sources

  1. README.md GitHub · gaasedelen/lighthouse · Revision 562595b
  2. coverage/README.md GitHub · gaasedelen/lighthouse · Revision 562595b
  3. coverage/pin/README.md GitHub · gaasedelen/lighthouse · Revision 562595b
  4. coverage/frida/README.md GitHub · gaasedelen/lighthouse · Revision 562595b
  5. plugins/lighthouse/util/disassembler/ida_api.py#L12-L14 GitHub · gaasedelen/lighthouse · Revision 562595b
  6. plugins/lighthouse/reader/parsers/tenet.py GitHub · gaasedelen/lighthouse · Revision 562595b
  7. plugins/lighthouse/util/update.py GitHub · gaasedelen/lighthouse · Revision 562595b
  8. binjastub/plugin.json GitHub · gaasedelen/lighthouse · Revision 562595b
  9. LICENSE GitHub · gaasedelen/lighthouse · Revision 562595b
  10. coverage/pin/LICENSE GitHub · gaasedelen/lighthouse · Revision 562595b
  11. https://github.com/gaasedelen/lighthouse/releases/tag/v0.9.3
  12. https://github.com/gaasedelen/lighthouse/compare/master...develop

More in Native binaries

All 74 entries in Native binaries