Ghidra と IDA Pro:短い選択基準
ライセンス費用を抑え、ソースを確認できる環境、十分なデコンパイラ、再現可能なスクリプトやヘッドレス解析が必要なら Ghidra が向いています。学生、個人研究者、教育担当、同じ検証環境を配布したいチームにとって始めやすい選択です。
長年使われた対話型逆アセンブラ、商用サポート、既存のショートカット、特定の Hex-Rays デコンパイラやプロセッサモジュールが重要なら IDA Pro を検討します。分析者の習熟度とサポートが作業時間を大きく左右する場合、ライセンス費用だけで判断しない価値があります。
どちらも解析を自動で正解にする製品ではありません。形式、アーキテクチャ、デコンパイラの挙動、スクリプト言語、レビューの記録方法を、同じ許可済みサンプルで比較してください。
同じバイナリ、アーキテクチャ、質問、証拠基準で試します。見やすい擬似コードだけで命令の確認を省略しないでください。
| 質問 | Ghidra | IDA Pro |
|---|---|---|
| 初期費用 | 無償でソースを確認できる | 商用ライセンスと追加デコンパイラ |
| 中心画面 | CodeBrowser、Listing、Decompiler、Function Graph | 対話型逆アセンブラ、グラフ、Hex-Rays |
| 自動化 | Java、Ghidra Script、PyGhidra、analyzeHeadless | IDA Python、IDC、プラグイン |
| 最初の試験 | 設定を確認して許可済みファイルを読み込む | 同じファイルで移動、型、出力を比較 |
チームが実際に購入するものを考える
Ghidra なら最初の実験で席を購入する必要がありません。公式配布物とソースを確認し、許可されたメンバーに同じバージョンを渡せます。授業や社内研修、短期の解析環境を再現しやすい一方、Java、拡張機能、ローカル変更を記録する運用は必要です。 IDA Pro のライセンス条件は、導入する人数と長期運用の予算に直結します。
IDA Pro の費用はライセンスだけではありません。デコンパイラやプロセッサ対応、更新、既存チームの教育、保存済みデータベースの運用も含めて考えます。特定のモジュールと商用サポートが案件の条件なら、購入が分析時間を節約することがあります。
無料と有料の二択にせず、読み込み、型修正、スクリプト、レポート、レビューにかかる時間を測ります。同じ五つの質問を両方で試すと、機能表より現実的な費用感になります。
- リリース、プロセッサ言語、コンパイラ仕様、拡張機能を記録する。
- 読み込み、移動、型回復、スクリプト、出力、レビューの時間を測る。
- 商用サポート、監査可能なソース、配布可能な実験室が必要か確認する。
- ライセンスとサンプルの許可範囲、出力の保管規則を守る。
日々の解析フローを同じ条件で比べる
ツールバーを眺めるのではなく、質問から始めます。同じ実行ファイルを読み込み、アーキテクチャとイメージベースを確認し、通常の解析を走らせ、文字列、インポート、エクスポートなどの確かな手掛かりを探します。その手掛かりから回答の関数までの操作数を比べます。 IDA Pro の画面構成は、既存の分析者が短時間で慣れるかどうかも判断材料です。
Ghidra の CodeBrowser は Listing、Symbol Tree、Decompiler、関連ビューを一つのプロジェクトにまとめます。擬似コードの一文がどの命令に対応するか説明しやすく、早期 return やループは Function Graph で確認できます。
IDA Pro も対話型逆アセンブリとグラフを中心に動きます。名前変更、コメント、クロスリファレンスの速度を好む利用者が多いので、実際の案件でレビュー時間が短くなるかを測定します。
- 1
同じサンプルを使う
所有または解析許可のある小さなファイルを選び、ハッシュとアーキテクチャを記録します。
sample.bin - 2
手掛かりを探す
文字列、インポート、シンボル、既知のアドレスから始めます。
検索 -> 文字列 - 3
証拠を追う
参照先の関数、グラフ、手動の型修正を記録します。
XRefs -> 関数 -> グラフ - 4
結論を残す
決定的なアドレス、条件、呼び出し、データ構造を保存します。
アドレス + 証拠

出力、型、分析者の確信度を比較する
デコンパイラは推論を助けますが、元のソースを時間を戻して復元するものではありません。最適化、インライン化、削除されたシンボル、間接呼び出し、難読化で出力は変わります。バイト、命令、参照、呼び出し元に対して仮説を検証できるかを比べます。 IDA Pro の解析結果は、同じ形式とアーキテクチャで Ghidra と照合してください。
Ghidra の param_1、local_18、FUN_00401230、undefined8 は根拠が不足している合図です。安定した名前、関数シグネチャ、構造体を証拠に基づいて直すと、呼び出し元も読みやすくなります。見た目だけで意味を決めないでください。
IDA Pro と Hex-Rays の表示を好む場合でも、分岐方向、符号、ポインタの深さ、引数、メモリ書き込みを逆アセンブリで確認します。もっともらしい一行を確定事項に変えず、不確実さを記録します。
| 確認点 | 比較すること | 残す証拠 |
|---|---|---|
| 関数境界 | 入口と return が一致するか | 範囲、呼び出し元、グラフ |
| データ型 | プロトタイプや構造体を直す速さ | 変更と影響する呼び出し元 |
| 間接フロー | テーブルや callback を追えるか | 参照先と仮定 |
| レビュー | 別の分析者が追えるか | コメント、ラベル、メモ |
スクリプト、ヘッドレス解析、反復可能なトリアージ
多数のファイルや CI、繰り返し質問があると自動化が比較の中心になります。Ghidra には Java API、内蔵スクリプト、CPython 用 PyGhidra、analyzeHeadless があります。入力、出力、ログ、解析設定を記録して初めて再現性が生まれます。 IDA Pro のスクリプト運用では、再現性とレビュー用の記録を先に決めます。
IDA Pro には IDA Python、IDC、プラグイン、バッチ処理があります。言語の名前ではなく、必要な事実を API から取得できるか、更新後もスクリプトが動くか、隠れた GUI 状態なしにレビューできるかを試します。
まず関数、インポート、文字列、疑わしい参照を列挙する読み取り専用スクリプトを作ります。型やコメントを変更する前に、実行時間、ログ、失敗時の復旧、出力された証拠を比較します。
- 単一ファイル:GUI で解析を理解し、質問を確認する。
- 小規模バッチ:入力、ログ、アドレス、失敗を保存するスクリプトを追加する。
- 定期パイプライン:バージョンを固定し、プロジェクトを分離してレポートを公開する。
- レビュー可能な発見:スクリプト、ハッシュ、バージョン、手動確認を同じ場所に置く。
Ghidra と IDA Pro を選ぶ場面
予算、ソースの透明性、教育用配布、ヘッドレス解析が重要なら Ghidra が現実的な第一候補です。Java や PyGhidra の共有手順を整備できる組織にも向いています。 IDA Pro の機能を選ぶときは、必要なプロセッサ対応とデコンパイラを確認します。
分析者が IDA Pro の操作に熟練し、その速度が直接価値になる場合、または特定のプロセッサ対応や商用サポートが標準化されている場合は IDA Pro が適します。移行と再教育の費用も見積もってください。
両方を使う方針も可能です。広いトリアージを一方で行い、難しいアーキテクチャや専門レビューをもう一方で確認します。スクリーンショットや擬似コードにツール名、バージョン、設定を付けます。
| 状況 | 最初の候補 | 理由 |
|---|---|---|
| 初めて学ぶ | Ghidra | 購入なしで基本ビューを学べる |
| 既存の IDA チーム | IDA Pro | 習慣とスクリプトを活かせる |
| 再現可能なバッチ | Ghidra headless | 配布しやすい自動化 |
| 難しいアーキテクチャ | 並列の小さな比較 | プロセッサで対応が変わる |
制限、安全、そして公平な証拠基準
ツール選択は法的・運用上の責任をなくしません。許可されたソフトだけを隔離環境で解析し、秘密や個人情報を共有プロジェクトに入れないでください。どちらも安全性や悪意を証明する製品ではなく、アクセス制御を回避する許可も与えません。 IDA Pro の導入後も、許可済みサンプルで比較条件を固定して評価します。
性能と対応範囲はアーキテクチャ、コンパイラ、シンボル、パッカー、アンチ解析、読み込み品質に左右されます。一方で綺麗な関数が見えても、他方が間違いとは限りません。
報告には入力ハッシュ、バージョン、プロジェクト状態、スクリプト/プラグイン、決定的なアドレス、手動確認を残します。これでウィンドウや擬似コードの表現が違っても比較できます。
比較ページは手順とトレードオフを説明します。公式リリースノート、脆弱性評価、法的助言、解析許可の判断の代わりにはなりません。
30分で行う Ghidra と IDA Pro の実践比較
オープンソースの実行ファイルか、教育用に提供されたサンプルを使います。開く前にハッシュ、アーキテクチャ、コンパイラの手掛かりと質問を記録し、各ツールにクリーンなプロジェクトを作ります。 IDA Pro の比較結果は、チームの許可済みサンプルで再確認します。
最初の10分で同じ文字列やインポートを探し、次の10分で関数と分岐まで追い、最後の10分で証拠を書きます。移動、型修正、グラフ、スクリプト、出力、別の分析者による再現時間を記録します。
通常の案件で明確な答えを残せる方を選びます。もう一方も第二意見として残し、実案件後に判断を更新します。短いデモだけで長期的なプラグイン保守費を見落とさないでください。
- 1
準備
ハッシュ、許可、アーキテクチャ、質問、期待する証拠を記録します。
sha256 + 質問 - 2
移動
両方で同じ手掛かりを見つけ、関数までの操作数を数えます。
手掛かり -> 関数 - 3
検証
命令、グラフ、引数、メモリ効果を確認し、見た目だけを比べません。
Listing + グラフ - 4
レビュー
別の分析者にノートとバージョンだけで再現してもらいます。
独立再現

Ghidra と IDA Pro に関する FAQ
Ghidra は IDA Pro より優れていますか?
全員にとって優れた方はありません。Ghidra は無償配布、ソース確認、反復可能なスクリプトが強みで、IDA Pro は商用フロー、特定対応、既存チームの習熟度で有利です。 IDA Pro の比較では、価格だけでなく必要な機能を確認します。
Ghidra に IDA Pro のようなデコンパイラはありますか?
あります。C に似た Decompiler を含みます。同じアーキテクチャで出力を比べ、逆アセンブリで検証してください。 IDA Pro の導入判断は、担当者の経験とレビュー手順にも左右されます。
同じバイナリを両方で使えますか?
ライセンスと許可があれば比較できます。プロジェクトを分け、ハッシュを記録し、データベースやスクリプトが自動的に移植できるとは考えません。 IDA Pro のデコンパイラを使う場合も、命令レベルの確認を省略しません。
初心者にはどちらがよいですか?
無償で CodeBrowser、Listing、Decompiler、Function Graph を学べる Ghidra が始めやすいでしょう。IDA ベースのチームに入るなら、レビューされるツールから学ぶ方が早い場合があります。 IDA Pro の運用条件は、Ghidra と同じ評価表に記録します。
レポートに擬似コードの画像は必要ですか?
補助にはなりますが、アドレス、命令、仮定、バージョン、手動確認を本文に残します。画像だけでは再現できません。