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.
Primary sources
- README.md GitHub · gaasedelen/lighthouse · Revision 562595b
- coverage/README.md GitHub · gaasedelen/lighthouse · Revision 562595b
- coverage/pin/README.md GitHub · gaasedelen/lighthouse · Revision 562595b
- coverage/frida/README.md GitHub · gaasedelen/lighthouse · Revision 562595b
- plugins/lighthouse/util/disassembler/ida_api.py#L12-L14 GitHub · gaasedelen/lighthouse · Revision 562595b
- plugins/lighthouse/reader/parsers/tenet.py GitHub · gaasedelen/lighthouse · Revision 562595b
- plugins/lighthouse/util/update.py GitHub · gaasedelen/lighthouse · Revision 562595b
- binjastub/plugin.json GitHub · gaasedelen/lighthouse · Revision 562595b
- LICENSE GitHub · gaasedelen/lighthouse · Revision 562595b
- coverage/pin/LICENSE GitHub · gaasedelen/lighthouse · Revision 562595b
- https://github.com/gaasedelen/lighthouse/releases/tag/v0.9.3
- https://github.com/gaasedelen/lighthouse/compare/master...develop
More in Native binaries
- BinAbsInspector · Tool
- VulHunt Community Edition · Tool
- BinSync · Tool
- class-dump · Tool
- Lucid · Tool
- r2dec · Tool