🐉

Ghidra Script (Extension) をVS Codeで作成する

2024/12/05に公開

はじめに

こんにちは。@konekotechです。
UEC Advent Calendar 2024 の5日目の記事として、Ghidra Script (Extension) をVS Codeで作成する方法を紹介します。

Ghidra とは

Ghidra は、アメリカ国家安全保障局(NSA)が開発したオープンソースのリバースエンジニアリングツールです。
マルウェア解析の分野において、リバースエンジニアリングツールはバイナリの中身を理解しながらその動作フローを追うために欠かせません。また、CTFのリバースエンジニアリング問題を解く際にも、Ghidraは非常に有用です。

Ghidra Script とは

Ghidra では、Java または Jython (Javaで実装されたPython2系のインタプリタ言語) を使って、GhidraのAPIを使った機能拡張を行うことができます。
これにより、自分好みのコマンドを作成することができ、バイナリ解析の効率を向上させることができます。
これまで、Ghidra Scriptを作成する際は Eclipse を使用する必要がありましたが、Ghidra 11.2 で VS Code によるスクリプト作成がサポートされました。これにより、Ghidra Script 作成のハードルがかなり下がりました。
この記事では、Ghidra Script (Extension)をVS Codeで作成する方法を紹介します。

Ghidra Script (Extension) をVS Codeで作成する方法

Ghidra Script (Extension) をVS Codeで作成するためには、以下の手順を行います。ただし、VS Code はインストール済みであることを前提とします。

Ghidra >= 11.2 のインストール

まずは、Ghidra 11.2 以上をインストールします。こちらのGitHubリリースページからダウンロードすることができます。

なお、Ghidra 11.2 では、Java 21 以上が必要です。ご自身でJDKをインストールしておきましょう。

Script Managerを開く

Ghidraを起動し、適当なプロジェクトを作成し、適当なバイナリを投げ入れ、CodeBrowserを開きます。
CodeBrouserを開いた状態で、下の画像の再生ボタンのようなボタン(Script Manager)をクリックします。

img1

GhidraScript の実行

Script Manager で、「VSCodeProjectScript.java」を検索し、選択します。右上にある「Run Script」ボタンをクリックし、GhidraScript を実行します。

img2

プロジェクト名と場所を指定

プロジェクト名と場所を指定するダイアログが表示されるので、適当なプロジェクト名を入力し、「OK」をクリックします。
これで、VS Code で編集できるGhidra Script (Extension) のプロジェクトが作成されます!

おわりに

本当は実際に拡張機能を作成してビルドするところまで書きたかったのですが、時間が足りないのでそのうち追記しようと思います。

Discussion