Skip to content

Releases: gaasedelen/lighthouse

v0.9.3

05 Feb 18:12
Compare
Choose a tag to compare

Predominantly a servicing / compatibility release, long overdue.

Additional Downloads

  • CodeCoverage-v0.9.3-98830.zip - Windows pintool binaries compiled for Pin 3.30 (Kit 98830)
v0.9.3 -- CHANGELOG

+ Changes
|- Formally adds full drcov v3 log support (finally)
|- Improves performance of coverage loading, which could be significant in some cases
|- Fixed countless Binary Ninja / PySide6 compatibility breakages from the past 3+ years
|- Allow for fuzzier name matching in the Frida tracer script's module whitelisting
|- Fixed a UI regression that could affect systems with odd DPI
|- Adds the "long night" Lighthouse theme by Layle / ioncodes
|- Updated Intel pin build scripts for newer versions of pin

v0.9.2

10 Aug 20:44
Compare
Choose a tag to compare
v0.9.2 -- CHANGELOG

+ Changes
|- Lighthouse can now be installed through the Binary Ninja plugin manager (2.4.2918 and newer)
|- Misc Qt/compatibility fixes for newer versions of Binary Ninja
|- Updated the drcov parser to support reading of newer (v5) drcov log files
|- Added basic support for loading 'coverage' from a Tenet-style trace
|- Loosened the 'instruction vs basic block' heuristic for determining trace format 
|- Improved UI styling to better select 'Monospace' fonts cross platform (at least, macOS)
|- Improved disassembly color detection logic for newer version of IDA
|- Fixed an issue where Lighthouse would fail to load with multiple Qt packages present
|- Fixed a crash that could occur when loading coverage for an executable with a Unicode name
|- Intel pin tool code updated to compile on the latest versions of pin

v0.9.1

02 Sep 19:01
Compare
Choose a tag to compare
v0.9.1 -- CHANGELOG

+ Changes
|- Fixed a bug where Lighthouse could paint the wrong graph nodes in IDA when a node was shared
|- Added a checkbox to suppress the 'module selector' dialog when loading coverage files
|- Improved module matching for custom coverage readers by trimming module paths when possible
|- Vastly improved the performance of the coverage pin tool for longer/larger executions
|- Fixed a crash that would occur if the IDA installation does not have a decompiler present
|- Fixed an issue where edges were not saved after cyclomatic complexity was computed
|- Disabled logging by default, since v0.9 seemed relatively stable

v0.9.0

23 Apr 10:18
Compare
Choose a tag to compare

Release Notes: What's New in Lighthouse v0.9

Additional Downloads

  • CodeCoverage-v0.9-98189.zip - Windows pintool binaries compiled for Pin 3.13 (Kit 98189)
  • CodeCoverage-v0.9-97998.zip - Windows pintool binaries compiled for Pin 3.11 (Kit 97998)
  • CodeCoverage-v0.9-97971.zip - Windows pintool binaries compiled for Pin 3.10 (Kit 97971)
v0.9 -- CHANGELOG

+ Features
|- Added support for 'module+offset' style coverage files / traces
|- Added a coverage cross-reference dialog, like git-blame for coverage hits
|- Theme subsystem for custom user defined Lighthouse themes and colors
|- Added a fallback 'Module Selector' dialog to pick which 'binary' to load coverage for
|- Complete refactor for native Binary Ninja 2.0 support, multiple databases
|- Updated to fully support IDA 7.0 -> 7.4
|- Python 2/3 compatible for all platforms & disassemblers
|- Faster, more accurate database painting subsystem

+ Minor Changes
|- Extensible coverage parser interface makes it easier to load custom coverage formats
|- Added support for absolute address (bb, or instr.) style coverage files / traces
|- Updated the drcov coverage parser to support newer revisions
|- Batch loading no longer loads all files into memory before aggregating data
|- Decompilation views in IDA will now refresh coverage paint automatically
|- Lighthouse is now 'accessible' through the disassembler console, with lighthouse.get_context(...)
|- Significantly improved the database painter performance and stability in IDA
|- Improved the performance for caching database metadata
|- Support 'interleaved' instruction coverage in capable disassemblers (Binary Ninja)
|- 'Forcefully' clearing database paint will now block with a waitbox while running
|- Double clicking a function in the coverage table will now jump to the 'first' block with coverage
|- Added a simple check against GitHub to notify when a new version of Lighthouse is available
|- Removed the 'range' syntax from the composition grammar -- nobody used it anyway
|- IDA should now close faster than it previously did after using Lighthouse
|- Deprecated support for IDA 6.8 -> 6.95
|- Tons of other minor improvements and code cleanup

+ UI
|- Lighthouse now ships with two default themes, one 'Light' and one 'Dark'
|- Unless the user specifies a theme preference, Lighthouse will pick which one it thinks is best
|- Reduced the font size of Lighthouse on macOS by 1pt, text should look a bit less comical
|- The coverage overview will more consistently snap to the right-side of the disassembler on open
|- Horizontal scrolling in the coverage table is now 'per-pixel' vs 'per-column' (less jumpy...)
|- Changed column sizing for the coverage table, 'Function Name' will also stretch by default now
|- Improved the coverage shell so that text selection (click+drag) actually works
|- Improved overall consistency with opening / closing the coverage combobox
|- Improved the combobox and coverage shell styling to look a bit sharper
|- Lighthouse error messages should be less likely to look bungled on other platforms
|- Continue to improve cross-platform & cross-disassembler UI consistency
|- Added tooltips to the coverage overview table header

+ Bugfixes
|- A partially executed basic block should no longer appear fully painted in graph views
|- Fixed a bug that could prompt the user 'several' times for a coverage name when saving a composition
|- Lighthouse will now attempt to rebase itself should the user 'rebase' their IDB (IDA only)
|- Fixed a bug where the Aggregate set symbol '*' was simply unusable in the coverage shell
|- The drcov parser could fail to extract module filenames when parsing a log collected on a different OS
|- Fixed some edge cases to improve the stability of metadata collection (caching)
|- Fixed a bug where deleted / undefined functions would persist in the coverage table after refresh
|- Using the shell to jump to sub_... function names did not work in Binary Ninja due to case sensitivity
|- Fixed bug that caused 'renamed' functions to lose their navigability (click to jump) in the table

+ BINJA KNOWN ISSUES
|- Highlighting the newly released Binary Ninja HLIL is not yet supported
|- Lighthouse will not properly spin down its threads and resources after closing a bndb / bv
|- Live rebasing of Lighthouse is *not* supported in Binja -- rebase first, and then open Lighthouse

v0.8.3

12 Dec 18:58
Compare
Choose a tag to compare
v0.8.3 -- CHANGELOG

+ Changes
|- IDA 7.2 compatibility
|- Updated Lighthouse to work on Binja dev (breaks stable...)
|- Fixes issues with parsing newer drcov logs
|- Updated Pintool makefile for newer versions of GCC
|- Updated documentation regarding pintool
|- Minor improvements to Frida coverage script
|- Fixed edge case where a division by zero could occur when computing coverage mapping
|- Fixed edge case where the painter thread could crash if user cursor was in an unexpected place

v0.8.2

11 Oct 14:43
Compare
Choose a tag to compare

Fixes small issue with Binary Ninja personal builds.

v0.8.1

03 Oct 05:49
Compare
Choose a tag to compare

Fixes minor regressions from v0.8 release.

v0.8.0

23 Sep 22:11
Compare
Choose a tag to compare

Release Notes: What's New in Lighthouse v0.8

Additional Downloads

  • CodeCoverage-v0.8-97619.zip - Windows pintool binaries compiled for Pin 3.7 (Kit 97619)
  • CodeCoverage-v0.8-97554.zip - Windows pintool binaries compiled for Pin 3.6 (Kit 97544)
v0.8 -- CHANGELOG

+ Features
|- Experimental Binja support
|- Added quick-settings menu
|- Export basic HTML coverage report
|- Added the ability to clear paint, or disable it entirely
|- Warnings for coverage load failures are now more explicit
|- Added warnings for coverage that appears badly mapped or incorrect
|- ASCII drcov logs are now supported

+ UI
|- Tweaked table font & spacing
|- Cross-platform & cross-disassembler styles are now much more consistent
|- Lighthouse no longer looks like trash macOS
|- Arrow Keys & VIM bindings (h,j,k,l) can now be used to navigate the coverage table
|- Right-click copy operations now work on multiple table entries
|- Table column text alignment can be toggled by right-clicking the column headers
|- Made the composing shell hint less aggressive, as it could often get in the way
|- Tweaked style of shell hint popup
|- Tweaked spacing/style on Coverage Combobox
|- Added hover tooltip to Coverage Combobox that shows coverage filepath (if available)

+ Bugfixes
|- Improved cyclomatic complexity metrics (again)
|- Fixed an issue where Lighthouse would ignore some graph nodes
|- Painting should finally be 100% 'stable' on IDA 6.8 -> 7.0
|- Loading coverage files with the same name from different directories will no longer load over existing coverage
|- Fixed some metadata collection bugs
|- Shorthand symbol order will now reset if all loaded coverage is closed

+ BINJA KNOWN ISSUES
|- Binary Ninja sometimes deadlocks when loading coverage
|- Renaming a function to an existing symbol (name) does not reset the old function name
|- Rapidly switching between coverage can cause a hard crash of Binary Ninja (BN bug?)
|- Opening more than one Binary/BNDB at a time while using Lighthouse is not supported

v0.7.2

04 May 16:40
Compare
Choose a tag to compare
hotfix for new drcov log formats, closes #36

v0.7.0

07 Dec 10:36
Compare
Choose a tag to compare

Release Notes: What's New in Lighthouse v0.7

Additional Downloads

  • CodeCoverage-v0.7-97503.zip - Windows pintool binaries compiled for Pin 3.5 (Kit 97503)
  • CodeCoverage-v0.7-97438.zip - Windows pintool binaries compiled for Pin 3.4 (Kit 97438)