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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
BinDiffHelper — Ghidra拡張機能で、関数マッチングのためにBinDiffを統合する | Kitploit
ツール/GitHubGitHub/ubfx/bindiffhelper
静的分析コード分析リバースエンジニアリングマルウェア分析ユーティリティとフレームワークバイナリ解析バイナリエクスプロイト
GitHububfx/bindiffhelper

BinDiffHelper

Ghidra拡張機能で、関数マッチングのためにBinDiffを統合する

リポジトリを見る
2962322日前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有

BinDiffHelper

GhidraプロジェクトでBinDiffを使用して一致する関数を検索し、自動的に名前を変更するGhidra拡張機能です(BinDiff 6、7、8をサポート)。 BinDiffマニュアルを参照して、その仕組みと関数/基本ブロックのマッチング方法を確認してください。ただし、この拡張機能ではBinDiffがGhidra内から自動化されるため、自分でバイナリをdiffする必要はありません。

バグはgithubのissue機能で報告してください

変更履歴

v0.7.1

  • Ghidra 12向けに更新

v0.7.0 (Ghidraバージョン >= 11.4)

  • Ghidraバージョンの互換性以外に変更なし

v0.6.4 (Ghidraバージョン < 11.4)

  • 名前空間のエクスポートをサポート
  • diff時の無限ハングを修正

v0.6.3

  • テーブルのソートを許可

v0.6.2

  • BinDiff 8でdiffが永久にハングするバグを修正
  • シンボルをダブルクリックすると、プライマリとセカンダリ両方のコードリスティングでそのシンボルを追跡

v0.6

  • sqliteドライバライブラリを更新、Appleシリコンで動作するようになったはず
  • デコンパイルされた関数間の外部テキストdiffをサポート(https://github.com/ubfx/BinDiffHelper/pull/24 を参照)
  • UIの更新

v0.5

  • BinDiff 8をサポート
  • Ghidra 11.1向けリリース
以前の変更 ### v0.4.3 * Ghidra 11.0向けリリース

v0.4.2

  • すべての関数をインポートする機能を追加(テーブルでチェックされたものだけでなく)
  • テーブル内の複数要素のチェックボックスを切り替える機能を追加
  • Ghidra 10.3をサポートするよう更新

v0.4.1

  • Gradle 7.5およびGhidra 10.1をサポートするよう更新

v0.4.0

  • BinDiff 7およびGhidra 10をサポート

v0.3.2

  • 同じプロジェクトの別ファイルとのdiffが機能しないバグを修正
  • 短い名前(3文字未満)のファイルがdiffできないバグを修正

v0.3.1

  • 「from project」オプションでファイルを開く際のクラッシュを修正

v0.3

  • リスティング内の一致した関数を色付け
  • リスティング内の一致した関数に、もう一方のバイナリへのリンクを含むコメントを追加
  • 一部のビルドでprotobufライブラリが欠落していたバグを修正
  • 新しいファイル読み込みメニュー

v0.2

  • インポート先のファイルをチェックアウトする必要があったバグを修正
  • プロジェクトファイル選択ダイアログのサイズを拡大

v0.1

  • Ghidraで開いているバイナリを、同じGhidraプロジェクトの別のバイナリとBinDiffし、結果を表示して関数名をインポート
  • 2つの.BinExportファイルからBinDiff 6で作成されたBinDiffファイルを開き、一致する関数名をGhidraにインポート

インストール方法

Ghidraバージョンと互換性がある場合はreleaseから.zipファイルをダウンロードするか、そうでない場合は以下のビルド方法を参照してください。

  1. Ghidraを開く
  2. メインウィンドウで: File->Install Extensions... に移動
  3. 右上の+-ボタンをクリックし、BinDiffHelperのzipファイルを選択
  4. プラグインマネージャを閉じる。新しいプラグインを読み込むためにGhidraを再起動
  5. 以下の使用方法を参照

推奨される他のツール

  • BinExportプラグインのバイナリ、または特定のGhidraバージョン向けにソースからコンパイル
  • BinDiff (https://zynamics.com/software.html)

これらがない場合、.BinDiffファイルのインポートのみ可能で、Ghidraプロジェクトからの自動エクスポートとdiffはできません

使用方法

Ghidraでファイルを開いてプラグインがCode Explorerに読み込まれていることを確認し、Code ExplorerでFile->Configureに移動します

右上の小さなプラグアイコンをクリックします:

Configure tool

そしてBinDiffHelperPluginの隣のチェックボックスがチェックされていることを確認します。

Configure plugins

外部.BinDiffのインポート

対応する.BinExportファイルが同じフォルダにある必要があります。

名前をインポートしたいファイルをコードブラウザで開き、Window->BinDiffHelperに移動します Open BinDiffHelper

Open from BinDiffボタンまたはメニュー項目を使用し、.BinDiffファイルを選択します。

Example import

インポートしたいすべての関数名を選択し、右上のImport function namesボタンまたはメニュー項目をクリックします。

Ghidraプロジェクト内のファイル間の比較

Window->BinDiffHelperに移動し、BinExportまたはBinDiffに関する警告がないことを確認してから、Open from projectボタンをクリックします。

ツリーからもう一方のファイルを選択し、OKをクリックします。

Example project import

ビルド方法

要件:

  • Ghidraのインストール (https://ghidra-sre.org) またはソースからのコンパイル
  • 何らかのjdk。Ghidraのビルド方法や使用している他のプラグインによっては、特定の制限があるかもしれません。現在BinExportとBinDiffHelperの両方で動作するようなので、Temurin 21 LTSの使用を推奨します。
  • gradle (7.5、8.10でテスト済み)

リポジトリのクローン

それぞれのprotocol buffer定義のためにBinExportに依存しているため、リポジトリを再帰的にクローンします。

git clone --recurse-submodules https://github.com/ubfx/BinDiffHelper.git

ビルド

GHIDRA_INSTALL_DIR環境変数をGhidraのインストールディレクトリに設定する必要があります。 異なるJDKがインストールされている場合は、環境変数JAVA_HOMEがGhidraのインストールで使用されているものを指していることを確認してください。

拡張機能はそのGhidraバージョン専用にビルドされます。

そしてシェルでBinDiffHelperフォルダに移動し、以下を実行します

gradle

これにより、それぞれのサブモジュール内のBinExportと、親ディレクトリ内のBinDiffHelperの両方がビルドされます。distディレクトリに.zipファイルが作成されているはずです。その.zipファイルを使用して、上記の手順に従ってインストールしてください。

開発/デバッグのセットアップ

Ghidraと一緒に拡張機能をデバッグできると便利なことがあります。以下にいくつかの注意点を示します:

  1. Ghidraをクローンしてビルドし、DevGuideに従ってgradleでeclipseプロジェクトを作成します
  2. プロジェクトをeclipseにインポートします(拡張機能開発用の関連プラグインがあることを確認してください)
  3. PyDevをインストールします(eclipseリポジトリとしてhttp://www.pydev.org/updates)
  4. GhidraDevをインストールします
  5. Ghidraビルドを解凍し、GhidraDevをそれにリンクします。GHIDRA_INSTALL_DIR環境変数を設定する必要があるかもしれません
  6. eclipseからGhidraを実行し、BinExport拡張機能をインストールします
  7. gradle build eclipseでBinDiffHelperのeclipseプロジェクトを作成します
  8. それをeclipseにインポートし、GhidraDevを使用してGhidraビルドにリンクします。
  9. Debug As->Ghidra

gradle build eclipseで生成されたクラスパスと、GhidraDevで行われたクラスパスの変更との間に、いくつかのクラスパスの衝突があるかもしれません。拡張機能プロジェクトからコアGhidraインストールのすべての.jarを削除し、GhidraDevに再追加させると役立つことがあります。その後eclipseのデバッグが失敗する場合は、eclipseで拡張機能プロジェクトを閉じて再度開くと役立つことがあります。 eclipseから拡張機能を使ってGhidraをデバッグする場合、拡張機能は自動的にGhidraに読み込まれます(通常の拡張機能インストールを経由しないでください)。ただし、プラグインはCode Explorerで有効にする必要があります。

参考

  • https://github.com/google/bindiff/releases
  • https://www.zynamics.com/bindiff/manual/
  • https://github.com/google/binexport/

アイコン提供: Fatcow free icons

ツールをダウンロード