Minxio

Minxio

人生如逆旅,我亦是行人。

Burp Suite プラグインのUIの迅速な設計

Burp Suite プラグインの UI の迅速な設計#

はじめに#

インターネット上では、Burp Suite の UI インターフェースをどのように迅速に設計するかについての詳細な記事はなく、他の作者のプラグイン UI をテンプレートとして使用するか、または IDEA の組み込み GUI ツールを使用する方法が一般的ですが、IDEA の GUI ツールは非常に使いにくいです。これにより、Swing を知らないけれどもプラグインを開発したいという人々が挫折してしまいます。今回は、私自身のプラグイン開発の経験を踏まえて、NetBeans IDE ツールを使用して自分が望む UI インターフェースを迅速に設計する方法を紹介します。

使用するツール#

  • IntelliJ IDEA
  • NetBeans IDE

NetBeans IDE の使用方法#

インストール方法については説明しませんが、公式ウェブサイトからダウンロードしてインストールするだけです(インストール後すぐに使用でき、登録は不要です)。

基本的な使用方法#

  1. プロジェクトを新規作成します。ここでは Maven プロジェクトを作成します(どのプロジェクトを使用しても問題ありません)、Next をクリックして完了します。

image-20230904101613964

これでプロジェクトが作成され、デフォルトで "Hello World" が表示されます。

image-20230904110155730

  1. プロジェクト内で "JPanel Form" ウィンドウを新規作成します。Burp Suite の UI は JPanel を基に設計されています。

image-20230904110219082

任意の名前を入力します。

image-20230904102744601

これで以下のような画面が表示され、以降の作業が非常に簡単になります。

image-20230904102947470

  1. 右側のコントロールをパネルにドラッグして、好みのインターフェースを設計します。上部のプレビューをクリックすると、リアルタイムでプレビューが表示されます。

image-20230904103630760

注意すべきポイント#

Swing を学んだことがある方は、このインターフェースに非常に慣れているはずです。ここでは各コントロールに対応するプロパティを説明します。

image-20230904103911948

  1. これらのプロパティ(名前、修飾子)を変更する必要があります。名前を覚えやすいものに変更し、コントロールをpublicに設定して、後でコードでコントロールにアクセスしやすくします。

image-20230904104122441

  1. クリックイベントなどの機能を実装するために、事前にリスナーメソッドを自動生成しておくことができます。NetBeans IDE では、対応するコントロールをダブルクリックするだけで、リスナーメソッドが自動的に作成されるため、自分でコードを書く手間が省けます。

image-20230904104933030

UI コードのエクスポート#

NetBeans IDE の使用に慣れていない場合(英語が読めない)、IDEA に戻ってコードを書くことになります。この場合、UI のコードをエクスポートして IDEA に貼り付ける必要がありますが、実際には非常に簡単です。

"Source" オプションをクリックすると、UI のソースコードが表示されます。すべてをコピーして IDEA に貼り付けます。

image-20230904110256398

image-20230904110352361

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 コードをテストすることができます。

image-20230904111242353

Burp Suite で ITab インターフェースを実装する#

ITab インターフェースを実装し、getUiComponent()メソッドで UI クラスのインスタンスを返し、SuiteTabに登録します。

image-20230904113243156

パッケージング

パッケージング方法については説明しませんが、インターネット上には多くの記事があります。

image-20230904113610132

まとめ#

NetBeans IDE を使用して Burp Suite の UI を設計するのは非常に便利です。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。