アップデート一覧に戻る
New releaseAug 18, 2026

diaphora v3.4.2

Diaphora、最も高度なフリーかつオープンソースのプログラム差分ツール。

共有

δiaphora

インストール

Hex-Rays プラグインマネージャーでインストールします:

hcli plugin install https://github.com/joxeankoret/diaphora/archive/refs/tags/3.5.0.zip

手動インストール: コードをダウンロードし、plugins/ ディレクトリに配置します。

Diaphora (διαφορά、ギリシャ語で「違い」の意) バージョン 3.5 は、今日 (2026年) 利用可能な中で最も高度なプログラム diffing ツール (IDA プラグインとして動作) です。2015年にリリースされ、それ以来活発にメンテナンスされています: Diaphora は既に11年間にわたり、IDA 6.8 から 9.5 までのすべてのマイナーバージョンにポーティングされています。

Diaphora は IDA >= 7.4 のバージョンをサポートしています。これはコードが Python 3.X でのみ動作するためです (Python 3.11 が最後にテストされたバージョンです)。

独自の機能

Diaphora には、期待されるであろう最も一般的なプログラム diffing (bindiffing) 機能の多くが備わっています。例えば:

  • アセンブラの diffing。
  • 制御フローグラフの diffing。
  • シンボル名とコメントの移植。
  • 手動マッチの追加。
  • 類似度比率の計算。
  • バッチ自動化。
  • コールグラフマッチングの計算。
  • グラフ理論、アセンブラ、バイト、関数の特徴などに基づく数十のヒューリスティック。

しかし、Diaphora には他の公開ツールには存在しない独自の機能も多数あります。以下は独自機能の非網羅的なリストです:

  • struct、enum、union、typedef を移植する機能。
  • パッチ diffing セッションにおける潜在的に修正された脆弱性の検出。
  • コンパイル単位のサポート (コンパイル単位の検出と diffing)。
  • マイクロコードのサポート。
  • 並列 diffing。
  • 擬似コードベースのヒューリスティック。
  • 擬似コードパッチの生成。
  • 擬似コードの diffing (シンタックスハイライト付き!)。
  • スクリプトのサポート (エクスポートと diffing の両プロセス向け)。
  • ...

寄付

寄付を行うことで、Diaphora の作者を支援 (または感謝) することができます。寄付をご希望の場合は、以下のリンクのいずれかをご利用ください:

  • Liberapay
  • Donate

サポート

問題が発生した場合や助けが必要な場合は、Github でお気軽に issue を作成してください。インタラクティブにチャットしたい場合は、以下の Discord チャンネルをご利用いただけます: https://discord.gg/atg34w2xjV

ライセンスの問題

あなたの会社が AGPL ライセンスの使用を許可していない場合、社内で Diaphora を使用するため、または勤務先のあらゆる企業で個人として使用するための (IDA の名前付きライセンスに似た概念の) 商用ライセンスを取得することができます。詳細については、[email protected] までご連絡ください。

Diaphora の使用を妨げているのは私ではなく、あなたの会社であることをご理解ください。ご理解に感謝いたします。

Wiki

エクスポートや diffing プロセスの自動化方法、操作の高速化などをお探しの場合は、wiki をご覧ください。そうした疑問への回答が記載されています。

スクリーンショット

CVE-2020-1350 において脆弱性がパッチされた正確な関数を発見する Diaphora:

CVE-2020-1350

再び、CVE-2023-28231 が修正された正確な関数を発見する Diaphora:

CVE-2023-28231

CVE-2023-28231。ZDI のブログで説明されているように、この脆弱性は、"ProcessRelayForwardMessage()" 内のリレー転送メッセージの数が 32 (0x20) 以上でないことをチェックすることで修正されました。以下の擬似コード diffing に示されています:

CVE-2023-28231

DiaphoraによるHex-Rayのマイクロコードの差分解析:

グラフ内のマイクロコードの差分解析

アセンブリ、擬似コード、マイクロコードの差分解析:

アセンブリ、擬似コード、マイクロコード

Diaphora 3.0によるCVE-2023-21768の差分解析:

#Diaphora 3.0によるCVE-2023-21768の差分解析

これはiOS 9.3.5で修正されたPEGASUS iOSカーネルの脆弱性をDiaphoraで差分解析したスクリーンショットです:

iOS 9.3.5の差分解析

そして、これはMicrosoftのセキュリティ情報 MS15-034をDiaphoraで差分解析した古いスクリーンショットです:

MS15-034の差分解析

以下は、Alex Ionescuのブログ記事Analyzing MS15-050 With Diaphoraから抜粋した、Microsoftのセキュリティ情報 MS15-050をDiaphoraで差分解析したスクリーンショットです。

MS15-050の差分解析、ベストマッチ MS15-050の差分解析、部分一致 MS15-050の差分解析、擬似コードの差分

LuaBotの差分解析、マッチと擬似コード

以下は、iOS 10.3.3のiBootとiOS 11.0をDiaphoraで差分解析したスクリーンショットです:

iOS 10.3.3のiBootとiOS 11.0の差分解析

カテゴリ