Kali Linuxに、Ghidraをインストールする手順


# 概要
マルウェアの解析等で、リバースエンジニアリングツールが必要になる場合がある。

リバースエンジニアリングツールの一つに、アメリカ合衆国の国家安全保障局(NSA)が、2019/04/04に無償公開したツールGhidraがある。

この資料は、既にいくつも資料が存在するのを承知の上で、自分のメモ用にWindows10上のVertualBoxで稼働する、Kali LinuxにGhidraをインストールした手順を記録したもの。

VirtualBoxにKali Linuxをインストールする手順はこちら
[Kali Linux](https://qiita.com/HirMtsd/items/ba702c83c70e25670896)


# ダウンロード
WEBブラウザを使用し、以下のURLにアクセスする。
https://ghidra-sre.org/

![ghidra_001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/f9524b51-5375-2c87-53d5-4ada4a6f0a97.png)
(スクロールダウン)

![ghidra_002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/60aaa01a-408b-c9b9-92e2-634028978ef2.png)
Ghidraのインストールファイルをダウンロードするためのボタンが存在する。

2021/03/03時点での最新版は、以下のもの。
ghidra_9.2.2_PUBLIC_20201229.zip
(2020/12/30リリース)

[Download Ghidra v0.2.2]ボタン下部左の[SHA-256]ボタンを押下すると、ハッシュ値を確認できる。

![ghidra_003.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/c6bc5565-cb5c-2249-19d2-8923d98f6da3.png)
ghidra_9.2.2_PUBLIC_20201229.zipのSHA-256ハッシュ値は以下のとおり。

```
8cf8806dd5b8b7c7826f04fad8b86fc7e07ea380eae497f3035f8c974de72cf8
```

[ターミナルエミュレータ]を起動し、以下のコマンドを実行。

```
sha256sum ./ダウンロード/ghidra_9.2.2_PUBLIC_20201229.zip
```
![ghidra_004.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/3b3744be-ddb1-e63d-3cfa-be4cbb294d39.png)
ハッシュ値が一致することを確認。

インストールガイド(英語)は、以下のURLに用意されている。
https://ghidra-sre.org/InstallationGuide.html
![ghidra_005.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/0bba7f65-bbe1-ca6e-a68d-348173940270.png)


# JDKの確認
Kali Linuxをインストールする際に、[ソフトウェアの選択]画面で[large -- default selection plus additional tools]を選択しておくと、JDKがインストールされている。

[ターミナルエミュレータ]を起動し、以下のコマンドを実行。

```
java --version
javac --version
```
![ghidra_101.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/48847175-f2fd-d96b-07fe-1fa92a3946b9.png)
openjdk 11.0.10がインストールされている。

```
apt list | grep openjdk-11
```
![ghidra_102.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/f77d30cb-b418-f672-c65e-a68213584a2a.png)
openjdk-11-jdkとopenjdk-11-jdk-headlessがインストールされていることを確認する。


# インストール
## 展開
以下のコマンドを実行。

```
unzip ./ダウンロード/ghidra_9.2.2_PUBLIC_20201229.zip -d /tmp
```
![ghidra_201.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/6008fb16-db8c-71dc-0312-96ebbcca1f9a.png)
![ghidra_202.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/4dae103e-c99e-e6d1-cfa6-82f3fdd927d6.png)


## 動作確認
以下のコマンドを実行。

```
cd /tmp/ghidra_9.2.2_PUBLIC/
ls -la
./ghidraRun
```
![ghidra_203.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/a14e256b-558e-d9c6-44b0-df1628ece686.png)
![ghidra_204.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/5c912ef6-4c53-538e-0442-eac7114cdf09.png)
正常に動作することを確認する。
いったん右上の[×]ボタンを押下して、ウィンドウを閉じる。


## 管理者ユーザでインストール
以下のコマンドを実行。

```
cd
sudo unzip ./ダウンロード/ghidra_9.2.2_PUBLIC_20201229.zip -d /opt
ls -la /opt/ghidra_9.2.2_PUBLIC/
```
![ghidra_205.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/38bf8ff7-fce7-6bf8-f4e0-8d623b3a67ec.png)
![ghidra_206.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/68863f1c-a844-e00f-d7d8-f5f3feaa4b1e.png)
/opt以下にrootユーザでインストール完了。


## 起動用アイコンの作成
デスクトップから容易に起動できるように、起動用ランチャを作成する。

![ghidra_301.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/124c4193-efd4-9f0a-e325-b7f2515ac851.png)
デスクトップの任意の箇所でマウスを右クリック-[ランチャーの作成(L)...]を選択。

![ghidra_302.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/49da21c4-f7b9-d3fd-2a0c-9cd4ef1f68ba.png)
[名前(N):]Ghidra
[コメント(O):]Ghidra 9.2.2
[コマンド(A):]/opt/ghidra_9.2.2_PUBLIC/ghidraRun
[ディレクトリの編集(D):]/opt/ghidra_9.2.2_PUBLIC/
を入力し、
[アイコン(I):]右側の[アイコンはありません]を押下。

![ghidra_303.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/6b2ca71e-79e3-dfcb-1ddb-e305bbd2f8d7.png)
[アイコンを選択(I):]で、「画像ファイル」を選択した後、
/opt/ghidra_9.2.2_PUBLIC/docs/GhidraClass/Beginner/Images
以下にある、GhidraLogo64.pngを選択し、[OK(O)]ボタンを押下。

![ghidra_304.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/60cb90e3-b80b-cc2d-d5fb-64ffffab2323.png)
[アイコン(I):]に反映されたことを確認し、[作成(R)]ボタンを押下。

![ghidra_305.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/0b06a0d9-de5a-2fc2-69d3-83fb64beceaa.png)
デスクトップ上にランチャが作成されたことを確認する。


## 動作確認(GUI)
作成したランチャをダブルクリックしてGhidraを実行する。

![ghidra_401.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/414a290b-f35d-7b5c-377e-39f77dccee4a.png)
ライセンス確認画面が表示されたら、[I Agree]ボタンを押下。

![ghidra_402.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/3e62f22f-10e7-da1f-cb80-ff01785d3d89.png)
このようなダイアログが表示されれば起動に成功している。

![ghidra_403.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/75d29759-daa2-eb46-46e1-3f0c1080ed06.png)
初回起動時には、[Ghidra Help]ウィンドウが前面に表示される。
右上の[×]ボタンで閉じる。

![ghidra_404.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/b0959a54-a0b4-e5bd-6a70-9ba5b73e94e7.png)
[Tip of the Day]ダイアログが表示されたら、[Close]ボタンを押下。

![ghidra_405.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/1bf63ea1-09bb-e140-6df3-87ab29eacc39.png)
Ghodraの正常起動を確認。


# 参考資料
NSAのGhidra情報
https://www.nsa.gov/resources/everyone/ghidra/


GhidraのGitHub上のソースコード
https://github.com/NationalSecurityAgency/ghidra/