OpenJDKの導入

2022年JDK事情

こちらの記事で紹介されているようにJDKは様々なベンダーから提供されるようになっています。

JDK、Oracle JDK、OpenJDK、Java SEってなに?

この中で多くの場合で配布されているのはビルド済みファイルで手作業でPATHを設定する必要があり面倒です。また更新も手作業にならざるを得ないため、自動化できるパッケージマネージャを使うことをおすすめします。

(推奨1) パッケージマネージャwingetでOpenJDKをインストール

wingetツールを使用したアプリケーションのインストールと管理 - Microsoft

microsoft/winget-cli - GitHub

winget.run

Microsoft Store https://www.microsoft.com/p/app-installer/9nblggh4nns1からインストールするのが推奨されています。

wingetが使えるようになれば以下のような各ベンダーから出ているJDKをインストールします。

$ winget install -e --id Microsoft.OpenJDK.17
$ winget install -e --id AdoptOpenJDK.OpenJDK.17

(推奨2) パッケージマネージャChocolateyでOpenJDKをインストール

chocolatey.org

管理者権限でpowershellを起動し、Installing Chocolateyに載っているSet-ExecutionPolicyから始まるコマンドをコピペして実行します。

するとchocoコマンドが使えるようになり以下のような各ベンダーから出ているJDKをインストールします。

$ choco install oraclejdk
$ choco install microsoft-openjdk
$ choco install temurin

ojdkbuildパッケージは非推奨となりました ojdkbuild - chocolatey

(非推奨) インストーラーでOpenJDKをインストール

各ベンダーの中でもMicrosoft OpenJDKとTemurinはwindowsインストーラーを提供しているので、PATHを手動で設定する必要はありません。

  • Microsoft OpenJDK

https://learn.microsoft.com/ja-jp/java/openjdk/download からmsiファイルをダウンロードして実行

  • Temurin

https://adoptium.net/temurin/releases/ からmsiファイルをダウンロードして実行

Ghidra の導入

https://ghidra-sre.org/

Ghidraのダウンロード

https://github.com/NationalSecurityAgency/ghidra/releases をブラウザで開き最新のバージョンのzipファイルghidra_<バージョン>_PUBLIC_<日付>.zipをダウンロードする

Ghidraのファイルの解凍

ダウンロードしたファイルを右クリックし、「すべて展開」を選択します

「展開」をクリックします

Ghidraの起動

展開したフォルダの中の「ghidrarun.bat」をクリックしGhidraを起動します

(注意) ここでWindows Defenderなどのアンチウイルスソフトが検知をする場合がありますが、製品の案内に従って実行を続行します

(Windows Defenderの場合、「詳細情報」をクリックすることで「実行」ボタンが出てくるのでこれをクリックします)

User Areement

User Areementが表示されるので「I Agree」をクリックします

Ghidraが起動しました

(おまけ) Ghidraでのファイル読み込み

起動後File→New Projectを選択

Non-shared projectを選択

適当なProject DirectoryとProject Nameを入力

Tool Chestの緑のアイコンをクリック

File→Import Fileから配布バイナリを選択

「analyze now?」にYes

Analysis OptionはデフォルトでOK

左の真ん中のSymbol TreeのFunctionsを展開しmainを選択

真ん中に逆アセンブル結果,右に逆コンパイル結果が表示される