Ikeraq

NationalSecurityAgency/ghidra

中身のわからない実行ファイルを、人が読める形に戻して調べる

Apache-2.0 · 商用可 Java ★ 90,857 (今日 +624) 2日前に更新
GitHub で見る NationalSecurityAgency/ghidra
GitHub の説明(原文)
Ghidra is a software reverse engineering (SRE) framework

どういうものか

配布されているソフトは、ほとんどがコンパイル済みの形で届く。人が書いた元のコードは手元になく、機械が実行するための並びだけがある。この状態から中身を読み解く作業をリバースエンジニアリングと呼ぶ。Ghidra は、その作業に必要な道具をひとまとめにした土台で、アメリカ国家安全保障局(NSA)の研究部門が作り、いまも手入れしている。Windows・macOS・Linux をはじめ、さまざまな環境向けにコンパイルされたコードを扱えると README にある。

できることは、逆アセンブル(機械語を命令の並びに戻す)、アセンブル、逆コンパイル(より高い水準のコードの形に起こす)、図として描く、スクリプトで動かす、ほか多数と README は並べている。対応している命令セットと実行ファイルの形式が幅広いことも特徴に挙がっている。使い方は2通りあり、画面を見ながら人が追っていく形と、自動で流す形の両方に対応する。利用者が自分で拡張機能やスクリプトを作ることもでき、その言語は Java と Python。

作られた背景も README に書かれている。規模が大きく、複数人で分担する解析でうまく回らなくなる問題を解くために作られ、研究の土台として手を入れやすいことを狙っている。NSA 自身は、悪意のあるコードの解析や、ネットワークや機器に潜む弱点を深く知るための道具として使ってきたとある。GitHub にこのリポジトリが置かれたのは2019年3月で、以来ずっと更新が続いている。

配布された実行ファイルを、読める形に戻す 実行ファイル コンパイル済みで、 元のコードは付いてこない Ghidra 逆アセンブル 逆コンパイル 図にして描く 読み解いた結果 命令の並び、 コードに近い形 画面で人が追う道と、自動で流す道の両方がある(拡張とスクリプトは Java と Python) ひとりで抱えきれない規模の解析を、分担して進めるために作られている
押さえどころは真ん中の箱の中身ではなく、ひとりで抱え込まずに済む形にしてあること。README が最初に挙げる開発の動機がそれにあたる。

どんなときに使うか

手元の実行ファイルが何をしているのか確かめたいとき

出どころのはっきりしないファイル、仕様書の残っていない古いソフト、動きが説明と合わない実行ファイル。元のコードが手に入らない相手を調べるための入口になる。逆アセンブルから逆コンパイル、図示までが同じ土台にそろっていて、無償で使える。

同じ対象を複数人で分担して読み進めたいとき

README は、規模が大きく分担が必要な解析でつまずく問題を解くために作った、と書いている。ひとりで完結する読み解きよりも、複数人で進める場面を先に見ている作りだ、ということになる。

注意点

特定の版に既知の脆弱性がある、と README 自身が警告している。 「古いものだけ」とは書かれていない。使う前にリポジトリのセキュリティ勧告(Security Advisories)を読んで、自分が影響を受けるか確かめるように、と冒頭近くに書かれている。解析対象を読み込む道具なので、ここは飛ばさないほうがいい。

配布物のダウンロードを間違えやすい。 公式の配布ファイルは ghidra_<バージョン>_<リリース>_<日付>.zip という名前で、リリースページの「Assets」の中にある。「Source Code」と書かれたファイルはこれではないと README がわざわざ注意している。また、既にある導入先に上書きして展開してはいけないとも書かれている。

動かすのに Java が要る。 導入手順の1行目が「JDK 25 の64ビット版を入れる」になっている。自分でソースから組み立てる場合は、さらに Gradle(ネットにつながるなら同梱の wrapper で代えられる)・Python3・コンパイラ一式が要り、手順の重さが変わる。

スクリプトを書く環境は、組み上がった導入先が前提。 Eclipse 向けの GhidraDev と Visual Studio Code の連携は、リリースページから落として組み上がったものに対してのみ対応する、と README に明記されている。ライセンスは Apache-2.0。

開発の様子

7.6 年
公開してからの期間。2019-03-01 が最初のコミットです
55 回
リリースの回数です
449 人
開発に参加した人数です
2 日前
最後のコミットです
2,106 件
未解決の Issue とプルリクエストの合計です(GitHub はこの2つを同じ数に含めます)

ほかの候補

WerWolv/ImHex
🔍 A Hex Editor for Reverse Engineers, Programmers and people who value their retinas when working at 3 AM.
x64dbg/x64dbg
An open-source user mode debugger for Windows. Optimized for reverse engineering and malware analysis.
radareorg/radare2
UNIX-like reverse engineering framework and command-line toolset
X で共有 この記事がよかったら

この記事の更新日は 2026-09-17 です。 内容は公開されている README と GitHub のデータに基づいています。 数値は GitHub から取得したもの、警告は判定の基準にある条件での自動判定です。事実誤認を見つけた場合はお知らせください。