Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
bindiff — 逆アセンブルされたコードの相違点と類似点を素早く見つける | Kitploit
ツール/GitHubGitHub/google/bindiff
静的分析脆弱性分析リバースエンジニアリングマルウェア分析バイナリ解析論文と研究学習と教育ファームウェア解析
GitHubgoogle/bindiff

bindiff

逆アセンブルされたコードの相違点と類似点を素早く見つける

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

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
ウェブサイト

BinDiff Logo

Copyright 2011-2026 Google LLC.

BinDiff

このリポジトリには BinDiff のソースコードが含まれています。BinDiff は、 バイナリファイルの逆アセンブルされたコードの差分や類似点をすばやく見つけるための オープンソース比較ツールです。

目次

  • BinDiff について
  • クイックスタート
  • ドキュメント
  • コードマップ
  • ソースからのビルド
  • ライセンス
  • 参加方法

BinDiff について

BinDiff は、バイナリファイル向けのオープンソース比較ツールであり、 脆弱性研究者やエンジニアが逆アセンブルされたコードの差分や類似点をすばやく 見つけるのを支援します。

BinDiff を使用すると、研究者はベンダー提供のパッチに含まれる脆弱性の修正を特定して 切り分けることができます。また、同じバイナリの複数バージョンの逆アセンブリ間で シンボルやコメントを移植するためにも使用できます。これにより、時間の経過に伴う 変更の追跡が容易になり、組織が分析結果を保持して、バイナリ分析担当者間の知識移転を 可能にします。

ユースケース

  • x86、MIPS、ARM、PowerPC、および一般的な逆アセンブラが サポートするその他のアーキテクチャ向けのバイナリファイルを比較する。
  • 異なるバイナリ内の同一および類似の関数を特定する
  • ある逆アセンブリから別の逆アセンブリへ、関数名、コメント、ローカル名を移植する
  • 同じ関数の2つのバリアント間の変更を検出して強調表示する

クイックスタート

BinDiff の使用をすぐに開始したい場合は、リリースページから 事前ビルドされたインストールパッケージをダウンロードしてください。

注: BinDiff は別の逆アセンブラに依存しています。標準では、IDA Pro、Binary Ninja、Ghidra をサポートしています。逆アセンブラのページに、サポートされている 構成が一覧表示されています。

ドキュメント

既存のマニュアルの一部が、 docs/ ディレクトリで入手できます。

コードマップ

BinDiff には次のコンポーネントが含まれています。

  • cmake - 外部依存関係を宣言する CMake ビルドファイル
  • fixtures - BinDiff コアエンジンをテストするためのテストファイルの コレクション
  • ida - IDA Pro 逆アセンブラとの統合
  • java - Java ソースコード。BinDiff のビジュアル差分ユーザーインターフェースと、 対応するユーティリティライブラリが含まれています。
  • match - BinDiff コアエンジン用のマッチングアルゴリズム
  • packaging - インストールパッケージのパッケージソース
  • tools - 製品に同梱されるヘルパー実行ファイル

ソースからのビルド

以下の手順で、ネイティブコードと Java ベースのコンポーネントの両方をビルドできます。

より詳細なビルド手順は後日追加される予定です。これには、インストールパッケージを ビルドするための既製の Dockerfile とスクリプトが含まれます。

ネイティブコード

BinDiff は、ネイティブ C++ コードで構成されるコンポーネントのビルドファイルを 生成するために CMake を使用します。

次のビルド依存関係が必要です。

  • BinExport 12、BinDiff のコンパニオンプラグインであり、 共有コードも多数含まれています。
  • Boost 1.83.0 以上(1.83.0 の一部コピーは BinExport に同梱されており、自動的に使用されます)
  • CMake 3.14 以上
  • 高速ビルドのための Ninja
  • Linux/macOS では GCC 15 または最近のバージョンの Clang。Windows では、Visual Studio 2022 コンパイラと Windows 11 用 Windows SDK を使用してください。
  • Git 1.8 以上
  • ダウンロードされる依存関係:
    • Abseil、GoogleTest、Protocol Buffers (3.14)、SQLite3
    • Binary Ninja SDK
    • IDA SDK

一般的なビルド手順は Windows、Linux、macOS で同じです。以下は Linux でのコマンドを 示しています。

次に、ビルドディレクトリを構成してビルドファイルを生成します。

root@kitploit:~
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release

最後に、実際のビルドを実行します。バイナリは build/ に配置されます。

root@kitploit:~
cmake --build build --config Release
(cd build; ctest --build-config Release --output-on-failure)
cmake --install build --config Release

IDA なしでビルドする

IDA なしでビルドするには、上記の構成手順を次のように変更するだけです。

root@kitploit:~
cmake -S . -B build/out -G Ninja -DCMAKE_BUILD_TYPE=Release \
  -DBINEXPORT_ENABLE_IDAPRO=OFF

Java GUI と yFiles

Java ベースの GUI をビルドするには、グラフの表示とレイアウトのために、商用の サードパーティ製グラフ可視化ライブラリ yFiles が 必要です。このライブラリは非常に強力であり、簡単に置き換えられるものではありません。

BinDiff のビルドには Gradle 6.x と Java 11 LTS を使用します。インストール方法については、 インストールガイドを参照してください。

yFiles のライセンス所有者であれば、環境変数 YFILES_DIR を、yFiles の y.jar と ysvg.jar を含むディレクトリに設定してください。

注: BinDiff は引き続き yFiles の古い 2.x ブランチを使用しています。

次に Gradle を起動して、外部依存関係をダウンロードしてビルドします。

Windows:

root@kitploit:~
set YFILES_DIR=<path\to\yfiles_2.17>
cd java
gradle shadowJar

Linux または macOS:

root@kitploit:~
export YFILES_DIR=<path/to/yfiles_2.17>
cd java
gradle shadowJar

その後、java サブディレクトリ内の ui/build/libs ディレクトリに、自己完結型の bindiff-ui-all.jar アーティファクトが含まれているはずです。これは標準の java -jar コマンドで実行できます。

関連資料 / 類似ツール

BinDiff の背後にある一般的なアイデアを概説した原著論文:

  • Thomas Dullien and Rolf Rolles. Graph-Based Comparison of Executable Objects. bindiffsstic05-1.pdf. SSTIC ’05, Symposium sur la Sécurité des Technologies de l’Information et des Communications. 2005.
  • Halvar Flake. Structural Comparison of Executable Objects. dimva_paper2.pdf. pp 161-173. Detection of Intrusions and Malware & Vulnerability Assessment. 2004.3-88579-375-X.

同じ問題領域の他のツール:

  • Diaphora、同じアイデアの多くを実装した 高度なプログラム差分ツール。
  • TurboDiff、 現在は廃止された IDA Pro 用プログラム差分プラグイン。

BinDiff を使用しているプロジェクト:

  • VxSig、類似したバイナリのセットから AV バイト シグネチャを自動生成するツール。

ライセンス

BinDiff は Apache ライセンスの条件に基づいてライセンスされています。詳細については、 LICENSE を参照してください。

参加方法

貢献したい場合は、プルリクエストを送る前に CONTRIBUTING.md を お読みください。バグの報告や機能リクエストの提出もできます。

ツールをダウンロード