Ghidra

コンパイル済みのプログラムを逆アセンブル・逆コンパイルして、中身を読めるようにするリバースエンジニアリングの道具一式。米国 NSA が開発し公開しています。

cat ghidra/meta.yml確認日 2026-10-24

安全性

影響範囲 手元だけ自分の端末の中で完結し、外には何も送らない
管理者権限
不要
検証環境
不要

使い方

用途
学習
難易度
上級
形態
デスクトップアプリ
対応環境
Windows / macOS / Linux

信頼性

リポジトリ
NationalSecurityAgency/ghidra
ライセンス
自由に使えるApache-2.0
GitHub
スター94,1332026-10-25 時点
メンテ状況
更新が続いている最終更新 2026-10-22
目次
  1. はじめに
  2. Ghidra でできること
  3. 必要なもの
  4. 安全な試し方:自分のプログラムを解析する
  5. 主な画面と機能
  6. 注意点
  7. 次に読む
  8. 出典

Ghidra を使うと、ソースコードのない実行ファイルを開いて、機械語を読みやすい形に戻せます。練習には、自分で書いてコンパイルした小さなプログラムを使うと、答え合わせができて安全です。

この記事は、C などで簡単なプログラムを書いたことがあり、コンパイルした後の姿を見てみたい人に向けています。読み終えると、次のことができるようになります。

  • Ghidra をインストールして起動する
  • 自分でコンパイルしたプログラムを取り込み、自動解析にかける
  • 逆コンパイル結果と元のソースコードを見比べる

Ghidra でできること

Ghidra は、米国国家安全保障局(NSA)の研究部門が作り、オープンソースで公開しているリバースエンジニアリングの道具一式です。公式 README には、主な機能として逆アセンブル、アセンブル、逆コンパイル、グラフ表示、スクリプトが挙げられています。Windows、macOS、Linux 向けの実行ファイルを扱え、多くの CPU の命令セットとファイル形式に対応しています。

画面から操作するのが基本ですが、コマンドラインから一括で解析するヘッドレスモードもあります。Java や Python で独自のスクリプトや拡張機能を書くこともできます。

しないことGhidra は、プログラムの中身を読みやすく並べて見せる道具です。「このファイルは危険」といった結論は出してくれないので、何をするプログラムなのかは自分で読んで判断します。なお、ここで扱う取り込みと自動解析はファイルを読むだけの作業です。Ghidra にはプログラムを実際に動かすデバッガー機能もありますが、この記事では使いません。

必要なもの

Getting Started(Ghidra 12.2 時点)に書かれている条件は次のとおりです。

項目 内容
対応 OS Windows 10(ビルド 1809 以降)、Linux、macOS 10.13 以降。32 ビット OS は非推奨
Java JDK 25(64 ビット)。無料の LTS 版として Adoptium Temurin と Amazon Corretto が案内されています
メモリ・ディスク RAM 4 GB、本体用に 1 GB
Python 3 3.9〜3.15。デバッガーや PyGhidra を使うときに必要です

安全な試し方:自分のプログラムを解析する

  1. JDK 25(64 ビット)をインストールします。
  2. 公式のリリースページの「Assets」から、ghidra_<バージョン>_PUBLIC_<日付>.zip という名前のファイルを入手します。「Source Code」と書かれたファイルは本体ではないので選びません。
  3. zip を好きな場所に展開します。インストーラーはなく、管理者権限も要りません。古い版の上に重ねて展開しないでください。
  4. 展開したフォルダで、Windows なら ghidraRun.bat、Linux と macOS なら ./ghidraRun を実行します。JDK が見つからないときは、JDK のフォルダの場所を聞かれます。
  5. 練習用に、文字列を表示するだけの小さな C プログラムなどを自分で書き、コンパイルしておきます。
  6. Ghidra の画面で File>New Project を選び、プロジェクトを作ります。
  7. File>Import File… でコンパイルしたファイルを取り込みます。ファイル形式は、たいてい初期値のままで構いません。
  8. 取り込んだファイルを開くと CodeBrowser という画面が立ち上がり、自動解析をするか聞かれます。そのまま解析させます。
  9. Symbol Tree の関数の一覧から main などを選ぶと、Decompiler の画面に C 言語風の結果が出ます。元のソースと見比べてみましょう。

慣れてきたら、CTF の練習問題など、解析してよいと明記された教材に進むとよいでしょう。

主な画面と機能

CodeBrowser は、初期状態で次の画面を並べて表示します。

画面 見られるもの
Listing 逆アセンブルした命令とデータ
Decompiler 選んだ関数を C 言語風に戻した結果
Symbol Tree 関数名・ラベルなどの一覧
Program Tree ファイル内のセクションの並び
Data Type Manager 構造体などのデータ型

自動解析は、後から Analysis>Auto Analyze でもやり直せます。プログラムに埋め込まれた文字列を探す機能もあり、どこでメッセージを表示しているかを手がかりに読み進められます。

注意点

  • 他人が作ったソフトウェアを解析する前に、利用規約や使用許諾契約を確認してください。リバースエンジニアリングを禁じている製品があります。著作権法などの法律にも注意が必要です。判断に迷う場合は、自分のプログラムと解析してよい教材だけを使ってください。
  • 出どころの分からない実行ファイルを解析するときは、誤って実行しないよう、普段使いのパソコンとは分けた環境を使いましょう。
  • 公式 README は、一部の版に既知の脆弱性があると警告しています。使う前に公式のセキュリティアドバイザリを確認し、新しい版を使ってください。
  • 本体は公式の GitHub リリースページから入手してください。
  • macOS では初回起動時に、署名のない部品が Gatekeeper で隔離されることがあります。対処方法は Getting Started の Known Issues にあります。

次に読む

出典

  1. 公式リポジトリ README(インストール手順)github.com/NationalSecurityAgency/ghidra/blob/master/README.md
  2. Getting Started(対応 OS・必要環境・起動方法)github.com/NationalSecurityAgency/ghidra/blob/master/GhidraDocs/GettingStarted.md
  3. リリース:Ghidra 12.2github.com/NationalSecurityAgency/ghidra/releases/tag/Ghidra_12.2_build
  4. 公式の入門講座資料(Introduction to Ghidra Student Guide)github.com/NationalSecurityAgency/ghidra/blob/master/GhidraDocs/GhidraClass/Beginner/Introduction_to_Ghidra_Student_Guide.html
  5. セキュリティアドバイザリgithub.com/NationalSecurityAgency/ghidra/security/advisories
  6. ライセンス(Apache License 2.0)github.com/NationalSecurityAgency/ghidra/blob/master/LICENSE

確認日 2026-10-24

似たツール

MobSF

影響範囲 手元だけ
MobSF/Mobile-Security-Framework-MobSF

Android や iOS のアプリを読み込んで、危ない設定や権限、コードの問題を一覧にするモバイルアプリ診断ツール。ブラウザから操作します。

用途
診断・監査
形式
Web サービス
難易度
中級
ライセンス
条件つきGPL-3.0
分類
リバースエンジニアリング/脆弱性スキャン
更新が続いているスター22,032最終更新 2026-10-25
MobSFの解説を読む

Wireshark

影響範囲 外に届く
wireshark/wireshark

ネットワークを流れるパケットを記録し、中身をプロトコルごとに分解して見せるパケットアナライザー。

用途
学習
形式
デスクトップアプリ
難易度
初級
ライセンス
条件つきGPL-2.0
分類
ネットワーク/フォレンジック
更新が続いているスター10,082最終更新 2026-10-25
Wiresharkの解説を読む