Ghidra Download非公式ダウンロード・インストールガイド
日本語
GHIDRA TUTORIAL

Ghidraの使い方:初心者向けチュートリアル

空のプロジェクトから最初の解析結果を得るまでを順番に説明します。許可されたバイナリを読み込み、自動解析を実行し、ListingとDecompilerを比較して参照を追います。

GhidraDocs
レベル初心者
所要時間30〜45分
Ghidra12.1.3
確認日2026-07-23
GHIDRA

このGhidraチュートリアルで学ぶこと

基本手順は、プロジェクト作成、ファイル読み込み、アーキテクチャ確認、自動解析、関数の特定、アセンブリと疑似コードの比較です。

このチュートリアルは静的解析を中心に進めます。自作バイナリ、オープンソースのサンプル、学習用クラックミ、または調査を許可された練習プログラムを使い、対象を実行する必要はありません。

  • 基本手順は、プロジェクト作成、ファイル読み込み、アーキテクチャ確認、自動解析、関数の特定、アセンブリと疑似コードの比較です。
  • 許可されたファイルを静的に調べ、実習中に対象ファイルを実行しないでください。
  • CodeBrowser + Listing + Decompiler
  • XRefs + Function Graph
GHIDRA

安全な練習環境を準備する

自作プログラム、オープンソース、許可された学習用課題を使います。不明なファイルは隔離した仮想マシンで扱い、静的解析中に実行しません。

最初の演習では、パスワード文字列を確認する小さなCプログラムをコンパイルするか、学習用に作られた合法的なクラックミを選びます。解析前にハッシュを計算し、元ファイルを保存します。

Lab

自作プログラム、オープンソース、許可された学習用課題を使います。不明なファイルは隔離した仮想マシンで扱い、静的解析中に実行しません。

GHIDRA

プロジェクト作成・読み込み・自動解析

非共有プロジェクトを作成し、形式、プロセッサー、エンディアン、コンパイラー設定を確認してから自動解析を実行します。

検出された形式、プロセッサ、言語、エンディアン、コンパイラ仕様を確認します。一般的なPEとELFは既定値で動くことが多い一方、raw firmwareや珍しいアーキテクチャでは手動確認が必要です。

  1. 1

    プロジェクト

    非共有プロジェクトを作成し、形式、プロセッサー、エンディアン、コンパイラー設定を確認してから自動解析を実行します。

  2. 2

    読み込み

    形式、プロセッサ、言語、エンディアン、コンパイラを確認し、raw firmwareや珍しいアーキテクチャは手動で確認します。

  3. 3

    解析

    非共有プロジェクトを作成し、形式、プロセッサー、エンディアン、コンパイラー設定を確認してから自動解析を実行します。

プロジェクト作成・読み込み・自動解析
Ghidra公式ヘルプのスクリーンショット
GHIDRA

CodeBrowser、Listing、シンボルを理解する

Listingはアドレス、バイト、命令を表示し、Decompilerは高水準の解釈を表示します。Symbol Tree、文字列、検索を組み合わせます。

分かりやすい文字列から始め、参照を確認して呼び出し元の関数へ進みます。エントリポイントから全命令を読むより通常速い方法です。

画面用途操作
Listing命令確認
Decompiler疑似コード解釈
Symbol Treeシンボル移動
Defined Strings文字列手掛かりを探す
GHIDRA

Ghidraのデコンパイラを正しく使う

疑似コードは理解を速めますが、重要な判断はListingで確認します。根拠に基づいて関数名、変数名、型、コメントを改善します。

根拠が得られたら結果を改善します。関数と変数の名前、型、構造体、コメントを追加し、修正ごとに次の解析へ文脈を渡します。

  1. 1

    手掛かりを探す

    疑似コードは理解を速めますが、重要な判断はListingで確認します。根拠に基づいて関数名、変数名、型、コメントを改善します。

  2. 2

    参照を追う

    根拠に基づいて名前と型を設定し、構造体とコメントを追加して文脈を補います。

  3. 3

    根拠を確認

    疑似コードは理解を速めますが、重要な判断はListingで確認します。根拠に基づいて関数名、変数名、型、コメントを改善します。

Ghidraのデコンパイラを正しく使う
Ghidra公式ヘルプのスクリーンショット
GHIDRA

参照と関数グラフを追う

XRefsで使用箇所、呼び出し元、参照先を確認し、Function Graphで分岐、ループ、別経路を可視化します。

Function Graphは基本ブロックと分岐を制御フローの地図にします。入れ子の条件やループを確認し、Decompilerで各経路を説明します。

参照と関数グラフを追う
Ghidra公式ヘルプのスクリーンショット
GHIDRA

30分の最初の解析練習

成功・失敗メッセージを探し、参照をたどり、判定関数を特定して、重要な条件を根拠とともに説明します。

重要な分岐にブックマークを付けてプロジェクトを保存します。目的は元ソースの完全復元ではなく、文字列、参照、関数、条件、結論をつなぐ再現可能な証拠記録です。

  • 0-5
  • 5-12
  • 12-22
  • 22-30
GHIDRA

初心者によくあるミス

疑似コードを元ソースだと決めつけず、アーキテクチャを確認し、解析完了を待ち、不明なファイルを実行しないでください。

すべてのアナライザーを有効にせず、未知のバイナリを実行せず、推測した型を事実とみなさないでください。命令や参照が不自然なら正しいアーキテクチャで再インポートします。

問題リスク改善策
疑似コード誤った判断確認
アーキテクチャ誤った解析再読み込み
不明なファイル安全上のリスク隔離環境
GHIDRA

次に学ぶことと公式資料

小さな合法サンプルで同じ流れを繰り返し、公式ドキュメントとPyGhidraガイドへ進みます。 GhidraDocs.

画像はNSAのGhidra公式リポジトリに掲載されたものです。2026年8月22日に確認した最新版は、2026年8月18日公開のGhidra 12.1.3です。次は Ghidra デコンパイラ ガイドを読み、反復作業は PyGhidra で自動化できます。

FAQ

Ghidraの使い方 FAQ

Ghidraは安全ですか?

公式GitHubリリースから入手し、不明なファイルは隔離環境で実行せずに解析してください。

初心者はデバッガーから始めるべきですか?

最初は静的解析で関数、参照、制御フローの操作を覚えてください。

元のソースコードを完全に復元できますか?

できません。デコンパイラは有用な解釈を生成しますが、元ソースそのものではありません。

Ghidraを更新する方法は?

新しい公式版を別フォルダーに展開し、拡張機能の互換性を確認してください。

どのファイルを解析できますか?

自作、許可済み、オープンソース、学習用のファイルだけを使用してください。