Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
web3-decoder — Web3 JSON-RPCトラフィックをデコードするBurp Suite拡張機能。スマートコントラクトの関数呼び出し、レスポンス、ABI解決をサポートし、プロキシ対応およびマルチコール対応を備えています。 | Kitploit
ツール/GitHubGitHub/nccgroup/web3-decoder
脆弱性分析リバースエンジニアリング情報収集ウェブセキュリティペネトレーションテストAPIセキュリティ
GitHubnccgroup/web3-decoder

web3-decoder

Web3 JSON-RPCトラフィックをデコードするBurp Suite拡張機能。スマートコントラクトの関数呼び出し、レスポンス、ABI解決をサポートし、プロキシ対応およびマルチコール対応を備えています。

リポジトリを見る
115182ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Web3 Decoder

Web3 Decoder は、web3 のスマートコントラクトに関わる操作で何が起こっているかを分析するための Burp Suite 拡張機能です。 これは主に Ethereum ノードへの JSON-RPC 呼び出しと、 Polygon、Arbitrum、BSC などの互換ネットワークのノードへの呼び出しです。

ダウンロードとインストール

最新の拡張機能 JAR をダウンロードしてください — このリンクは常に最新のリリースを提供します:

⬇ web3-decoder.jar (latest)

古いバージョンは リリースページ にあります。

次に、Burp Suite で読み込みます:

  1. 拡張機能 → インストール済み → 追加 に移動します。
  2. 拡張機能タイプ を Java に設定し、ダウンロードした web3-decoder.jar を選択します。
  3. 次へ をクリックします — 読み込みが完了すると、Web3 タブと Web3 Request/Web3 Response エディタ タブが表示されます。

JRE 21 を同梱した Burp リリース(現在の Burp Suite バージョン)が必要です。この JAR は自己完結型です — すべての依存関係(web3j など)が含まれています。

ソースからのビルド

root@kitploit:~
./gradlew jar

拡張機能 JAR は常に一定のパス — web3-decoder/build/libs/web3-decoder.jar — に出力されます。 バージョンに関係なく、一度 Burp で指定すれば、再ビルド時に自動リロードさせることができます。 リリース手順は docs/RELEASING.md に記載されています。

スクリーンショット

これは、JSON-RPC リクエストとレスポンスのデコードに成功した後の、改良された Web3 エディタタブの外観です:

デコードされた Web3 リクエストとレスポンス

再設計された Web3 タブの下には、すべての設定、検出された ABI などが表示されます! (Claude Design に感謝!)

Web3 タブ

ドキュメント

詳細なドキュメントは docs/ フォルダにあります:

  • Architecture — レイヤー、コンポーネント、主要なデコード/エンコードフロー(図解付き)。
  • Project Structure — ディレクトリ構成とパッケージ単位の責務。
  • Tech Stack — 依存関係、ビルド/パッケージング、ランタイム、CLI モード。
  • Features — 実装上の指針付きの全機能カタログ。

ブロックエクスプローラの API キー

サポートされているほとんどのブロックエクスプローラ(etherscan.io など)は、5 秒間に 1 回を超えるリクエストを許可するために API キーを必要とします。

新しいインターフェースでは、チェーン、ブロックエクスプローラ、API キーを管理できます。

コントラクトの ABI を手動で追加する

この拡張機能は、etherscan などのブロックエクスプローラからダウンロードした ABI をキャッシュします。また、Web3 タブから直接、ブロックエクスプローラから自動取得して追加したり、手動で追加したりすることもできます。

実装済み機能

  • Burp 統合
    • JSON-RPC リクエスト用の Web3 Request エディタタブ(eth_call / eth_sendRawTransaction を含まないトラフィックでは非表示)。
    • 対応する JSON-RPC レスポンス用の Web3 Response エディタタブ。
    • チェーン/ABI/calldata ツールを備えた専用の Web3 スイートタブ。
    • デコードされた関数シグネチャをメモに注釈として付与したプロキシヒストリ行(別スレッドでデコードされ、ライブのヒストリ行に保持されます)。
  • デコード済みエディタの操作性
    • 両方のエディタタブは、デフォルトで構造化ツリービューを備え、JSON ビューはワンタッチで切り替えられます — 再エンコードの基準は常に JSON です。
    • JSON ビューには、構文 + セマンティックハイライト、行番号、括弧の対応、リアルタイムの妥当性チェック、検索バーがあります。
  • JSON-RPC リクエストのデコード
    • eth_call の calldata を function + 型付き args にデコードします。
    • 単一リクエストとバッチ JSON-RPC ペイロードをサポートします。
    • バッチペイロードの場合、各項目はステータス(decoded、skipped、error)と、スキップ/失敗時の理由とともに報告されます。
  • JSON-RPC レスポンスのデコード
    • 以前にデコードされた eth_call リクエストの をデコードします。

現在サポートされているチェーン

バンドルされているチェーンの完全な最新リストは web3-decoder/src/main/resources/chains.json にあります — この拡張機能は現在、Etherscan v2 マルチチェーンセット(Ethereum、Sepolia、BNB Smart Chain、Polygon、Base、Arbitrum、Linea、Blast、Optimism、Avalanche、Gnosis、Scroll、 Taiko、Berachain など、そのテストネットも含む)を同梱しています。また、このインターフェースでは 実行時に独自のチェーンを追加することもできます — ブロックエクスプローラが Etherscan スタイルの API を公開しているチェーンであれば、どれでも動作します。チェーン管理の詳細(非推奨チェーン ID の移行を含む)は Features を参照してください。

仕組み

使用中のノードに eth_chainId JSON-RPC リクエストを送信して、作業中のチェーンを検出し、チェーンに応じて chains.json ファイルを検索してブロックエクスプローラ API を選択します。

関数呼び出しをデコードするには、コントラクトの ABI(アプリケーションバイナリインターフェース)が必要です。これには、 コントラクトで呼び出せるすべての関数と、その入力と出力が含まれます。拡張機能は、次の順序で ABI を解決します:

  1. キャッシュ済み ABI — チェーン + コントラクトアドレス用(Burp のプロジェクトスコープ永続化)。
  2. 組み込み ABI — よく知られたコントラクト用(例: Multicall3)。
  3. ブロックエクスプローラ ルックアップ(Etherscan スタイル API)— 検証済みコントラクト用。
  4. 検出 ABI プール — パッシブスキャナが dapp フロントエンドバンドルから取得した ABI を、 4 バイト関数セレクタでインデックス化したもの。チェーン非依存。
  5. 4byte フォールバック — api.4byte.sourcify.dev に対するセレクタ → シグネチャ検索。一致した候補から 合成 ABI を構築します。

チェーン ID を判定できない場合(例: エンドポイントが eth_chainId に応答しない場合)、チェーンに依存する 手順(1〜3)はスキップされ、デコーダはチェーン非依存の手順(4 と 5)を引き続き試行します。

外部サービスとデータソース

トラフィックをデコードするために、拡張機能はいくつかの外部ソースと通信します。これらはオプションであり、Web3 タブから無効化できます。すべての送信 リクエストは Burp 自身の HTTP スタック(api.http().sendRequest)経由で送信されるため、 Burp のアップストリームプロキシ/TLS 設定が尊重され、Burp のトラフィックに表示されます。

プライバシーに関する注意: ABI ルックアップは、設定されたブロック エクスプローラにコントラクトアドレスを送信し、4byte フォールバックは関数セレクタを api.4byte.sourcify.dev に送信します。ダウンロードした ABI はローカルにキャッシュされるため、繰り返しのデコードでも 再クエリは発生しません。ほとんどのエクスプローラ(例: etherscan.io)では、約 1 リクエスト / 5 秒を超える場合に API キーが必要です — Web3 タブからキーを管理してください。

パッシブ ABI 検出器は、Burp がすでにキャプチャした HTTP レスポンスボディを読み取り、 完全にローカルで実行されます — 検出自体によってトラフィックが生成されることはありません。

ツールをダウンロード
result
  • 単一およびバッチレスポンスをサポートし、JSON-RPC の id(またはインデックスによるフォールバック)でエントリを照合します。
  • 再エンコードと編集ワークフロー
    • リクエストエディタでデコードされた引数を編集し、エンコード済み calldata に書き戻せます。
    • スタンドアロンの calldata ツールは、リクエスト履歴の外でデコードと再エンコードができます。
  • ABI の解決とキャッシュ
    • ABI 検索の優先順位: キャッシュ済み ABI → 組み込み → ブロックエクスプローラ(Etherscan 互換) → パッシブ検出プール → 4byte。
    • ダウンロードした ABI は、将来のデコードのために自動的にキャッシュされます。
    • ABI ソースはデコード出力で追跡されます(cache、builtin、etherscan、detected、4byte)。
  • パッシブ ABI 検出(新規)
    • Burp の PassiveScanCheck が HTTP レスポンスボディ(通常は minify された dapp の JS バンドル)をスキャンして Solidity ABI を探し、 見つけたすべてのデータを、関数セレクタでインデックス化されたプロジェクトスコープのプールに保存します。
    • 厳密な JSON と、minify されたバンドルに見られる JS オブジェクトリテラル形式の両方を処理します。これには、 Terser/esbuild/Svelte が出力する !0 / !1 のブール短縮表記も含まれます。
    • 既存の cache → builtin → etherscan チェーンが一致しない場合、デコーダは 4byte にフォールバックする前に 検出プールを確認します。デコード出力には decodeSource: "detected" とタグ付けされます。
    • eth_chainId が判定できない場合でも機能します: 検出プールと 4byte はチェーン非依存のため、 デコーダは拒否せずにそれらを試行します。
    • 新しい ABI ごとに、情報提供用の Burp イシュー("Solidity contract ABI detected")が、完全なメソッド リスト — 各関数/イベント/エラーの正規シグネチャと 4 バイトセレクタ — および ABI が見つかった URL とともに 生成されます。
  • 4byte フォールバックデコード
    • ABI 検索が失敗した場合、api.4byte.sourcify.dev に対して関数セレクタの検索が実行されます。
    • 候補シグネチャから合成 ABI 定義が生成され、デコード/再エンコードフローで使用されます。
  • プロキシ対応デコード
    • delegate プロキシパターンの実装コントラクトを検出し、実装 ABI に対してデコードします。
    • 実装済みプロキシ検出器: ERC1967 スロットとレガシー ZeppelinOS/OpenZeppelin スロット。
  • Multicall 再帰デコード
    • 一般的な Multicall バリアントのネストされた呼び出しをデコードします: aggregate、tryAggregate、aggregate3、aggregate3Value、blockAndAggregate、tryBlockAndAggregate。
    • 深さ制限とノードごとのステータス付きで、ネストされた呼び出しを再帰的にデコードします。
  • チェーンとエクスプローラの管理 UI
    • チェーン定義の追加/編集/削除(チェーン ID、名前、エクスプローラ)。
    • チェーンごとのエクスプローラ API キー管理。
    • Etherscan 系 API キーの共有と、チェーンごとの上書きをサポート。
    • chains.json からデフォルトチェーンを読み込み、カスタマイズは Burp のプリファレンスに永続化します。
    • 非推奨チェーン ID の新しい ID への移行にも対応しています(永続化された設定用)。
  • キャッシュ済み ABI の管理 UI
    • キャッシュ済み ABI を手動で追加(JSON を貼り付け)するか、設定済みエクスプローラから取得します。
    • キャッシュ済み ABI エントリを削除します。
    • キャッシュ済み ABI をエディタで開き、JSON を検証して更新を保存します。
  • 検出 ABI ブラウザ UI(新規)
    • Web3 タブの下にある、パッシブスキャナが蓄積したすべての ABI を一覧表示するサイドバイサイドパネル。
    • 各行には、短いフィンガープリント、関数数、ABI が最初に見つかった URL が表示されます。
    • 行をクリックすると、ABI エディタで ABI JSON を読み取り専用で表示できます。不要なエントリはプールから削除できます。
  • calldata デコード / 再エンコードパネル
    • チェーン ID + コントラクトアドレスのコンテキストを使用して calldata をデコードします。
    • スタンドアロンツールのプロキシ対応デコード用に、任意の RPC URL をサポート。
    • 該当する場合は、ネストされた Multicall のデコード詳細を表示します。
  • eth_sendRawTransaction JSON-RPC 呼び出し(およびその内部関数)のデコード
  • サービスエンドポイント用途
    JSON-RPC ノード(トラフィック内に既にあるエンドポイント)プロキシされた RPC URLアクティブなチェーンを検出するための eth_chainId、およびプロキシ実装スロット(ERC-1967 / レガシー ZeppelinOS)を読み取るための eth_getStorageAt。
    Etherscan(v2 マルチチェーン)https://api.etherscan.io/v2/api?chainid=…検証済みコントラクト ABI の取得。v2 がそのチェーンをサポートしていない場合は、チェーンのレガシーエクスプローラホスト(/api)にフォールバックします。
    4byte シグネチャデータベースhttps://api.4byte.sourcify.devABI がない場合に、未知の 4 バイト関数セレクタを候補シグネチャに解決します(一致したものから合成 ABI が構築されます)。