You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Lighthouse is a code coverage plugin for [IDA Pro](https://www.hex-rays.com/products/ida/). The plugin leverages IDA as a platform to map, explore, and visualize externally collected code coverage data when symbols or source may not be available for a given binary.
8
+
Lighthouse is a code coverage plugin for [IDA Pro](https://www.hex-rays.com/products/ida/), and [Binary Ninja](https://binary.ninja/). The plugin makes use of interactive disassemblers to map, explore, and visualize externally collected code coverage data when symbols or source may not be available for a given binary.
9
9
10
-
This plugin is labeled only as a prototype and IDA / Qt code example for the community.
10
+
This plugin is labeled only as a prototype & code resource for the community.
11
11
12
12
Special thanks to [@0vercl0k](https://twitter.com/0vercl0k) for the inspiration.
13
13
14
14
## Releases
15
15
16
+
* v0.8 -- Binary Ninja support, HTML coverage reports, consistent styling, many tweaks, bugfixes.
16
17
* v0.7 -- Frida, C++ demangling, context menu, function prefixing, tweaks, bugfixes.
2. Copy the contents of the `/plugin/` folder in this repo to your Binary Ninja [plugins folder](https://docs.binary.ninja/guide/plugins/index.html#using-plugins).
51
+
52
+
## Linux Installation
53
+
54
+
1. Install PyQt5 from a Linux shell with the following command:
44
55
45
56
```
46
-
- File --> Load file --> Code coverage file...
47
-
- File --> Load file --> Code coverage batch...
48
-
- View --> Open subviews --> Coverage Overview
57
+
sudo apt install python-pyqt5
49
58
```
50
59
51
-
Batch load can quickly aggregate hundreds (thousands?) of collected coverage files into a single composite at load time.
60
+
2. Copy the contents of the `/plugin/` folder in this repo to your Binary Ninja [plugins folder](https://docs.binary.ninja/guide/plugins/index.html#using-plugins).
61
+
62
+
## macOS Installation
63
+
64
+
¯\\\_(ツ)\_/¯
65
+
66
+
# Usage
67
+
68
+
Lighthouse loads automatically when a database is opened, installing a handful of menu entries into the disassembler.
69
+
70
+
<palign="center">
71
+
<imgalt="Lighthouse Menu Entries"src="screenshots/open.gif"/>
72
+
</p>
73
+
74
+
These are the entry points for a user to load and view coverage data.
52
75
53
76
## Coverage Painting
54
77
@@ -58,6 +81,8 @@ Lighthouse 'paints' the active coverage data across the three major IDA views as
Using a [custom pintool](coverage/pin) contributed by [Agustin Gianni](https://twitter.com/agustingianni), the Intel Pin DBI can also be used to collect coverage data.
163
197
@@ -167,7 +201,7 @@ Example usage:
167
201
pin.exe -t CodeCoverage64.dll -- boombox.exe
168
202
```
169
203
170
-
For convenience, binaries for the Windows pintool can be found on the [releases](https://github.com/gaasedelen/lighthouse/releases/tag/v0.7.0) page. MacOS and Linux users need to compile the pintool themselves following the [instructions](coverage/pin#compilation) included with the pintool for their respective platforms.
204
+
For convenience, binaries for the Windows pintool can be found on the [releases](https://github.com/gaasedelen/lighthouse/releases/tag/v0.8.0) page. macOS and Linux users need to compile the pintool themselves following the [instructions](coverage/pin#compilation) included with the pintool for their respective platforms.
171
205
172
206
## Frida (Experimental)
173
207
@@ -186,9 +220,12 @@ Time and motivation permitting, future work may include:
0 commit comments