Burp Suite プラグインの UI の迅速な設計#
はじめに#
インターネット上では、Burp Suite の UI インターフェースをどのように迅速に設計するかについての詳細な記事はなく、他の作者のプラグイン UI をテンプレートとして使用するか、または IDEA の組み込み GUI ツールを使用する方法が一般的ですが、IDEA の GUI ツールは非常に使いにくいです。これにより、Swing を知らないけれどもプラグインを開発したいという人々が挫折してしまいます。今回は、私自身のプラグイン開発の経験を踏まえて、NetBeans IDE ツールを使用して自分が望む UI インターフェースを迅速に設計する方法を紹介します。
使用するツール#
- IntelliJ IDEA
- NetBeans IDE
NetBeans IDE の使用方法#
インストール方法については説明しませんが、公式ウェブサイトからダウンロードしてインストールするだけです(インストール後すぐに使用でき、登録は不要です)。
基本的な使用方法#
- プロジェクトを新規作成します。ここでは Maven プロジェクトを作成します(どのプロジェクトを使用しても問題ありません)、Next をクリックして完了します。
これでプロジェクトが作成され、デフォルトで "Hello World" が表示されます。
- プロジェクト内で "JPanel Form" ウィンドウを新規作成します。Burp Suite の UI は JPanel を基に設計されています。
任意の名前を入力します。
これで以下のような画面が表示され、以降の作業が非常に簡単になります。
- 右側のコントロールをパネルにドラッグして、好みのインターフェースを設計します。上部のプレビューをクリックすると、リアルタイムでプレビューが表示されます。
注意すべきポイント#
Swing を学んだことがある方は、このインターフェースに非常に慣れているはずです。ここでは各コントロールに対応するプロパティを説明します。
- これらのプロパティ(名前、修飾子)を変更する必要があります。名前を覚えやすいものに変更し、コントロールを
public
に設定して、後でコードでコントロールにアクセスしやすくします。
- クリックイベントなどの機能を実装するために、事前にリスナーメソッドを自動生成しておくことができます。NetBeans IDE では、対応するコントロールをダブルクリックするだけで、リスナーメソッドが自動的に作成されるため、自分でコードを書く手間が省けます。
UI コードのエクスポート#
NetBeans IDE の使用に慣れていない場合(英語が読めない)、IDEA に戻ってコードを書くことになります。この場合、UI のコードをエクスポートして IDEA に貼り付ける必要がありますが、実際には非常に簡単です。
"Source" オプションをクリックすると、UI のソースコードが表示されます。すべてをコピーして IDEA に貼り付けます。
IDEA で UI コードをテストする#
以前に設計した UI は JPanel ですので、JFrame で包む必要があります。
package UI;
import javax.swing.*;
public class MainClass {
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
JFrame frame = new JFrame("Test Application");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
burpTestUI panel = new burpTestUI();
frame.add(panel);
frame.pack();
frame.setVisible(true);
});
}
}
これで IDEA で UI コードをテストすることができます。
Burp Suite で ITab インターフェースを実装する#
ITab インターフェースを実装し、getUiComponent()
メソッドで UI クラスのインスタンスを返し、SuiteTab
に登録します。
パッケージング
パッケージング方法については説明しませんが、インターネット上には多くの記事があります。
まとめ#
NetBeans IDE を使用して Burp Suite の UI を設計するのは非常に便利です。