Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/gaasedelen/lighthouse
静的分析動的分析 (サンドボックス)脆弱性分析コード分析リバースエンジニアリングデバッガファジングバイナリ解析論文と研究
GitHubgaasedelen/lighthouse

lighthouse

リバースエンジニアのためのカバレッジエクスプローラー

2.6k33647ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
リポジトリを見る
共有

Lighthouse - リバースエンジニアのためのカバレッジエクスプローラー

Lighthouse Plugin

概要

Lighthouseは、IDA ProおよびBinary Ninja向けの強力なコードカバレッジエクスプローラーであり、シンボルやソースコードを必要とせずにネイティブアプリケーションの実行マップを調査するための、独自のインタラクティブな操作機能をソフトウェアリサーチャーに提供します。

本プロジェクトはIDAの2017 Plug-In Contestで2位に入賞し、その後、セキュリティリサーチ業界への貢献により2021年Pwnie Awardsにノミネートされました。

インスピレーションを与えてくれた@0vercl0kに特別な感謝を捧げます。

リリース

  • v0.9 -- Python 3サポート、カスタムカバレッジフォーマット、カバレッジクロスリファレンス、テーマサブシステム、その他多数。
  • v0.8 -- Binary Ninjaサポート、HTMLカバレッジレポート、一貫したスタイリング、多数の調整、バグ修正。
  • v0.7 -- Frida、C++デマングリング、コンテキストメニュー、関数プレフィックス、調整、バグ修正。
  • v0.6 -- Intel pintool、サイクロマティック複雑度、バッチロード、バグ修正。
  • v0.5 -- 検索、IDA 7サポート、多数の改善、安定性。
  • v0.4 -- ほとんどの計算が非同期化、バグ修正。
  • v0.3 -- カバレッジコンポジション、インタラクティブなコンポジションシェル。
  • v0.2 -- マルチファイルサポート、パフォーマンス改善、バグ修正。
  • v0.1 -- 初回リリース

インストール

Lighthouseはクロスプラットフォーム(Windows、macOS、Linux)のPython 2/3プラグインです。サードパーティ依存関係が一切ないため、コードはポータブルでインストールも簡単です。

お使いのディスアセンブラに応じて、以下の手順に従ってください。

IDAへのインストール

  1. IDAのPythonコンソールから、以下のコマンドを実行してプラグインディレクトリを確認します:
    • import idaapi, os; print(os.path.join(idaapi.get_user_idadir(), "plugins"))
  2. このリポジトリの/plugins/フォルダの内容を、表示されたディレクトリにコピーします。
  3. ディスアセンブラを再起動します。

Binary Ninjaへのインストール

LighthouseはBinary Ninjaのプラグインマネージャーを通じてインストールでき、v3.5以降をサポートしています。

  1. 以下のサブメニューからBinary Ninjaのプラグインマネージャーを開きます:
    • Edit -> Preferences -> Manage Plugins
  2. プラグインマネージャーでLighthouseを検索し、右下のEnableボタンをクリックします。
  3. ディスアセンブラを再起動します。

使用方法

正しくインストールされると、ディスアセンブラにいくつかの新しいメニュー項目が表示されます。これらは、ユーザーがカバレッジデータをロードしてLighthouseを使い始めるためのエントリポイントです。

Lighthouse Menu Entries

Lighthouseは、いくつかの異なる「フレーバー」のカバレッジデータをロードできます。Lighthouseにロードできるカバレッジデータを生成するには、このリポジトリのcoverageディレクトリにあるREADMEを参照してください。

カバレッジペインティング

Lighthouseの使用中、ディスアセンブラで利用可能なすべてのコードビューアに、アクティブなカバレッジデータが「ペイント」されます。具体的には、リニアディスアセンブリ、グラフ、およびデコンパイラウィンドウに適用されます。

Lighthouse Coverage Painting

Binary Ninjaでは、リニアディスアセンブリ、グラフ、およびILビューのみがサポートされています。Binary Ninjaでのデコンパイラ出力のペインティングのサポートは、機能が安定した時点で近い将来Lighthouseに追加される予定です。

カバレッジ概要

カバレッジ概要は、Lighthouseにカバレッジがロードされると開くドッキング可能なウィジェットです。

Lighthouse Coverage Overview

このインタラクティブなウィジェットは、ロードされたカバレッジデータの関数レベルのビューを提供します。また、ロードされたデータを管理し、より高度な形式のカバレッジ分析を実行するための多数のツールを備えています。

コンテキストメニュー

カバレッジ概要のテーブルを右クリックすると、テーブルから情報を抽出したり、リバースエンジニアリングプロセスの一環としてデータベースを操作するための、いくつかの基本的な機能を備えたコンテキストメニューが表示されます。

Lighthouse Context Menu

このコンテキストメニューに追加すると便利だと思われるアクションがあれば、issueを提出してください。Lighthouseの将来のリリースで検討されます。

カバレッジコンボボックス

ロードされたカバレッジおよびユーザーが構築したコンポジションは、カバレッジコンボボックスを通じて選択または削除できます。

Lighthouse Coverage ComboBox

HTMLカバレッジレポート

Lighthouseは基本的なHTMLカバレッジレポートを生成できます。サンプルレポートはこちらで確認できます。

Lighthouse HTML Report

カバレッジシェル

カバレッジ概要ウィンドウの下部にはカバレッジシェルがあります。このシェルは、ロードされたカバレッジセットを組み合わせたり操作したりするロジックベースの操作を実行するために使用できます。

Lighthouse Coverage Composition

この機能は、複数の実行にわたるプログラム実行の関係を調査する際に非常に便利です。言い換えれば、このシェルはカバレッジセット間の実行を「diff」し、個々の部分のノイズの中に隠れている、より深い意味を抽出するために使用できます。

コンポジション構文

カバレッジコンポジション、つまり上記で示した_Composing_は、コンポジションシェル上のシンプルな式文法と「省略形」のカバレッジ記号(AからZ)によって実現されます。

文法トークン

  • 論理演算子: |, &, ^, -
  • カバレッジ記号: A, B, C, ..., Z, *
  • 括弧: (...)

コンポジションの例

  1. カバレッジAとカバレッジBの間で共有される実行コード:
A & B
  1. カバレッジAのみに固有の実行コード:
A - B
  1. AまたはBに固有だが、Cには固有でない実行コード:
(A | B) - C

式は任意の長さや複雑さにできますが、コンポジションの評価は右から左に行われる場合があります。そのため、曖昧になる可能性のある式には括弧の使用を推奨します。

ホットシェル

さらに、ユーザーのコンポジションをリアルタイムで非同期に評価およびキャッシュする「ホットシェル」モードがあります。

Lighthouse Hot Shell

ホットシェルは、コンポジションされた関係をガイドなしで探索するための自然な入り口として機能します。

検索

シェルを使用して、クエリの先頭に/を付けることで、カバレッジテーブルにリストされた関数を検索およびフィルタリングできます。

Lighthouse Search

シェルのヘッドには、残りの関数のみから計算された更新済みのカバレッジ%が表示されます。これは、特定の関数ファミリーのカバレッジを分析する際に便利です。

ジャンプ

シェルにアドレスまたは関数名を入力すると、テーブル内の対応する関数エントリにジャンプできます。

Lighthouse Jump

カバレッジクロスリファレンス(Xref)

Lighthouseの使用中、任意の基本ブロック(または命令)を右クリックし、「Coverage Xref」アクションを使用すると、選択したブロックを実行したカバレッジセットを確認できます。リストされたエントリのいずれかをダブルクリックすると、そのカバレッジセットに即座に切り替わります。

Lighthouse Xref

これは、「Coverage Batch」機能と相性が良く、何千ものカバレッジファイルをすばやくロードしてLighthouseに集約できます。ブロックをクロスリファレンスして「セット」を選択すると、その「原因」となったセットがディスクから新しいカバレッジセットとしてロードされ、バッチとは別に探索できます。

テーマ

Lighthouseには2つのデフォルトテーマが同梱されています -- 「ライト」テーマと「ダーク」テーマです。ディスアセンブラで現在使用されている色に応じて、Lighthouseは最も適切と思われるテーマを選択しようとします。

Lighthouse Themes

テーマファイルはシンプルなJSONとしてディスクに保存され、高度に設定可能です。デフォルトのテーマや色に満足できない場合は、独自のテーマを作成し、ユーザーテーマディレクトリに配置するだけです。

Lighthouseは、今後のロードおよび使用のためにテーマの設定を記憶します。

今後の作業

時間とモチベーションが許せば、今後の作業には以下が含まれる可能性があります:

ツールをダウンロード