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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ghidra-evm — イーサリアムスマートコントラクトのバイトコードを逆アセンブル、逆コンパイル、解析するためのGhidraモジュール。安全でない命令を検出し、隠されたメソッドを抽出し、セキュリティ監査のための制御フローグラフを生成します。 | Kitploit
ツール/GitHubGitHub/adelapie/ghidra-evm
静的分析脆弱性分析リバースエンジニアリングバイナリ解析
GitHubadelapie/ghidra-evm

ghidra-evm

イーサリアムスマートコントラクトのバイトコードを逆アセンブル、逆コンパイル、解析するためのGhidraモジュール。安全でない命令を検出し、隠されたメソッドを抽出し、セキュリティ監査のための制御フローグラフを生成します。

リポジトリを見る
149295年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

Ghidra EVM モジュール

front

過去数年、イーサリアムブロックチェーンにデプロイされたスマートコントラクトへの攻撃により、プログラミングのミスによって多額の資金が盗難される結果となっています。スマートコントラクトは一度コンパイルされてデプロイされると、修正や更新が複雑であるため、多くの実務者が、イーサリアム仮想マシン(EVM)のバイトコードのみが利用可能なブロックチェーン上でそのセキュリティをレビューすることの重要性を提唱しています。この点において、逆アセンブルと逆コンパイルによるリバースエンジニアリングは効果的です。

ghidra-EVMは、スマートコントラクトのリバースエンジニアリングのためのGhidraモジュールです。イーサリアムブロックチェーンからEVMバイトコードをダウンロードし、スマートコントラクトを逆アセンブルおよび逆コンパイルするために使用できます。さらに、作成コードの分析、コントラクトメソッドの発見、安全でない命令の特定を行うことができます。

プロセッサモジュール、カスタムローダー、およびEVMバイトコードを逆アセンブルしスマートコントラクトの制御フローグラフ(CFG)を生成するプラグインで構成されています。

最新バージョンはGhidra 9.1.2 APIを使用しています。CFG生成プロセスでGhidraを支援するために、crytic evm_cfg_builderライブラリ(https://github.com/crytic/evm_cfg_builder)に依存しています。

Ghidra-evmは以下で構成されています:

  • .evmファイルおよび.evm_hファイルからそれぞれバイトコードと16進コードを読み取るローダー(examplesを参照)。
  • Ghidraコアの制限を考慮したEVM命令セットのSLEIGH定義(注意事項を参照)。
  • evm_cfg_builderとghidra_bridgeを使用して、GhidraがCFGを生成しスマートコントラクトの関数プロパティを調査するのを支援するヘルパースクリプト。
  • スマートコントラクトのさまざまな側面をリバースエンジニアリングするためのスクリプト集:
ScriptDescription
search_codecopy.pyスマートコントラクトの作成コードを分析する際、CODECOPYを使用してランタイムコードをメモリに書き込むディスパッチャ関数のみ表示されます。このスクリプトは有用なCODECOPY命令を探し、コントラクトのランタイム部分に隠されたスマートコントラクトメソッドを見つけます。
search_dangerous_instructions.pyCALL、CALLCODE、SELFDESTRUCT、DELEGATECALLなどの命令は、別のコントラクトに資金を転送するために悪用される可能性があります。このスクリプトはそれらを見つけ、各出現にラベルを作成します。
load_external_contract.pyブロックチェーンからスマートコントラクトのバイトコードをダウンロードし、ghidra-evmにロード可能な.evm_hファイルに保存します。

インストール手順

  • ghidra_bridgeをインストールします。手順はhttps://github.com/justfoxing/ghidra_bridgeに従ってください。
  • crytic evm_cfg_builderライブラリをインストールします。手順はhttps://github.com/crytic/evm_cfg_builderに従ってください。
  • ghidra-evmの最新リリースファイルをghidra_evm/dist/からインストールします:
    • Ghidraを開く
    • File → Install Extensions
    • '+'をクリックし、zipファイル(例:ghidra_9.1.2_PUBLIC_20201102_ghidra_evm.zip)を選択
    • OKをクリック
    • Ghidraを再起動

コンパイル手順

ghidra-evmディレクトリの内容は、ghidra_evmを拡張またはデバッグするために、Eclipseでプロセッサとローダーを持つGhidraモジュールを作成するために使用できます。

チュートリアル

middle

外部シンボリック実行ツールとの統合

ScriptDescription
teetherエクスプロイト生成前にGhidra内でクリティカルパスをマークします。teetherが必要です。

注意事項

  • CFGはevm_cfg_builderに従って作成されます。JUMPおよびJUMPI命令が利用されます。
  • 逆アセンブリおよび制御フローウィンドウで分岐を検出して表示するために、32x32のジャンプテーブル(evm_jump_table)が生成されます。
  • Ghidraはワードサイズが64ビットを超えるアーキテクチャやメモリを扱うようには設計されていません。つまり、PUSH32などの命令は逆コンパイルウィンドウで正しく表示されません。

ライセンス

Ghidra-evmはAGPLv3の下でライセンスされ配布されています。

謝辞

  • 本研究は、欧州委員会のH2020プログラムのプロジェクトM-Sec(助成金814917)の支援を受けています。
  • Ghidra-EVMはBlack Hat Asia 2021のアーセナルトラックで発表されました。スライドはこちらにあります。
ツールをダウンロード
TutorialDescription
利用方法test.evmを使用した簡単な利用手順
作成バイトコードの分析search_codecopy.pyを使用した作成コードの分析と隠されたメソッドの発見
危険な命令の検索search_dangerous_instructions.pyを使用したSELFDESTRUCT発生の分析
ブロックチェーンからGhidraへのスマートコントラクトバイトコードのダウンロードload_external_contract.pyを使用したブロックチェーンから.evm_hファイルへのEVMバイトコードのダウンロード