【注意】このサイトに記載されていることを他人に試すことは「不正アクセス禁止法」に該当する場合があります。詳しくはこちらから

ハッカーは、リバースエンジニアリングツール「Ghidra」を利用して、脆弱性を発見し、安全な環境でエクスプロイトを開発・検証します

ペネトレーションテスト&バグバウンティ

Ghidraはリバースエンジニアリングツールで、マルウェア解析、脆弱性調査、ブラックボックス解析などに利用されます。

Ghidraとは

Ghidra(ギドラ)は、アメリカ国家安全保障局(NSA)が開発し、2019年にオープンソースとして公開したリバースエンジニアリングツールです。
バイナリ解析を行い、マルウェア解析や脆弱性調査、ソフトウェアのリバースエンジニアリングに活用されます。
Ghidraは、同様のツールであるIDA Proと比較されることが多いですが、無料で使用できる点が大きな利点です。
 
 

リバースエンジニアとは

リバースエンジニア(Reverse Engineer)とは、ソフトウェアやハードウェアを解析し、その仕組みや動作を明らかにする技術者のことです。
主に、プログラムのバイナリコードを解析し、ソースコードや設計を推測する作業を行います。
 

Ghidraの機能

Ghidraには、リバースエンジニアリングを支援するさまざまな機能が備わっています。
 

逆アセンブル(バイナリコードをアセンブリ言語に変換)

ソフトウェアは、CPUが理解できる「バイナリコード(機械語:0と1のデータ)」で動作します。
しかし、私たちにとってバイナリコードは読みにくいので、私たちが読めるアセンブリ言語に変換します。
アセンブリ言語に変換することにより、
・ソフトウェアの内部動作を調べられる。
・関数の流れや処理内容を分析できる。
・マルウェアの挙動を解析し、感染経路を特定できる。
 

デコンパイル(バイナリコードをC言語に戻す)

逆アセンブルだけでは、アセンブリ言語での解析になり、可読性が低いため、Ghidraのデコンパイラを使うと、ほぼC言語に近いコードに変換できます。
デコンパイルすることにより、
・ソースコードに近い形でプログラムの処理を読むことができる。
・アセンブリ言語よりも直感的に解析できる。
・ソフトウェアのバグや脆弱性を発見しやすくなる。
 

デバッガ機能(プログラムを実行しながら解析)

プログラムの動作をリアルタイムで確認しながら、特定の部分を詳しく解析できます。
デバッガ機能を使うことにより、
・メモリの値を監視し、どの変数が変更されるかを確認できる。
・ブレークポイントを設定し、プログラムを途中で止めてメモリの内容など調査ができる。
・マルウェアの動作を分析し、悪意のあるコードの実行場所を特定できる。
 

バイナリ比較(プログラムの変更点を比較)

アップデート前後のプログラムを比較して、新しく追加されたコードや修正された部分を特定できます。
プログラムのバイナリ比較をすることにより、
・ソフトウェアの脆弱性修正を調査し、どのように修正されたかを確認できる。
・マルウェアの進化を分析し、新しい攻撃手法を調べることができる。
・DRM(デジタル著作権保護)の変更点を分析し、不正利用対策の仕組みを理解できる。
 

スクリプトによる自動解析

Ghidraでは、PythonやJavaのスクリプトを利用して、バイナリ解析を自動化できます。
これにより、大量のデータを効率的に解析したり、繰り返し作業を簡単に実行できます。
スクリプトによる自動解析をすることにより
・特定の関数を自動抽出し、脆弱性をスキャンする。
・マルウェアの特定パターンを解析し、類似するウイルスを発見する。
・ソフトウェアのコードを検索し、改ざんされた部分を検出する。
 
 

Ghidraのインストール

Windows10のインストール例です。
 
1.Ghidraの公式サイトを開きます。
 
2.「Download from GitHub」をクリックします。
 
3.「github」のページが開きました。
 
4.Ghidraの最新バージョンのzipファイルをクリックして、ファイルをダウンロードします。
例:ghidra_11.3.1_PUBLIC_20250219.zip
 
5.ファイルがダウンロードできました。
 
6.Cドライブに、ダウンロードしたファイルを解凍します。
解凍先:C:\Ghidra\
 
7.Javaをインストールします。
ここでは、JDK(Java Development Kit)をインストールします。
 
8.「JDK 23」タブの「Java SE Development Kit 23.0.2 downloads」から「Windows」タブを選択して、「x64 Installer」のアドレスをクリックして、ファイルをダウンロードします。
 
9.ファイルがダウンロードされました。
 
10.ダウンロードしたファイルをクリックします。
「Java(TM)SE Development Kit 23.0.2(64-bit)-セットアップ」画面が表示されます。
「次(N)>」ボタンをクリックします。
 
11.「宛先フォルダー」画面で変更がなければ「次(N)>」ボタンをクリックします。
 
12.インストール中です。
 
13.インストールが完了しました。
「閉じる」ボタンを押下して終了します。
 
14.先ほど解凍したGhidraのフォルダーに移動します。
そして「ghidraRun.bat」を実行してGhidraを起動します。
 
15.「Ghidra User Agreement」画面が表示されるので「I Agree」ボタンを押下します。
 
16.「Ghidra」が起動しました。
 
 

ハッカーは、リバースエンジニアリングツール「Ghidra」を利用して、脆弱性を発見し、安全な環境でエクスプロイトを開発・検証しますのまとめ

倫理的なエクスプロイト開発者(Ethical Exploit Developer)は、Ghidraを活用してソフトウェアのリバースエンジニアリングを行い、脆弱性を特定します。
Ghidra はバイナリコードを解析し、アセンブリやデコンパイルを通じてプログラムの内部構造を可視化できる強力なツールです。
開発者はこれを用いて、バッファオーバーフローやメモリ破壊などの脆弱性を精査し、安全な環境(仮想マシンなど)でエクスプロイトを開発・検証します。このプロセスにより、攻撃手法を理解し、効果的なセキュリティ対策を講じることが可能となります。倫理的な目的で Ghidra を使用することで、システムの防御力を高め、サイバーセキュリティの向上に貢献できます。