Repolode
hugsy

hugsy/gef

x86、ARM、MIPS、PowerPC、SPARCに対応した、exploit開発向けの拡張インターフェースをGDBに追加するPython拡張です。

スター
8,424
フォーク
842
未解決の Issue
18
最終コミット
3 か月前

これは何?

GEF(GDB Enhanced Features)は、GDBにモダンなインターフェースと一連のコマンドを追加する単一のPythonスクリプトです。動的解析を行うexploit開発者やリバースエンジニアを主な対象とし、プログラムをデバッグするアプリケーション開発者が、GDBでの反復的な作業を減らすのにも役立ちます。

GEFはGDBのPython APIを基盤とし、アーキテクチャ抽象化レイヤーを使っているため、x86-32/64、ARMv5/6/7、AARCH64、SPARC、MIPS、PowerPCでコマンドを利用できます。外部依存関係はなく、~/.gdbinitから1つのファイルを読み込むだけでインストールできます。Python 3バインディングを有効にしてビルドしたGDB 10.0以降が必要です。

停止するたびに表示されるコンテキスト表示機能に加え、メモリ、レジスタ、実行時の状態を調べるための多数のコマンドを備えています。コミュニティ提供のコマンドは、別のGEF-Extrasリポジトリで管理されています。

主な機能

  • 01外部依存関係のない、単一のGDBスクリプト
  • 02x86、ARM、MIPS、PowerPC、SPARCに対応したアーキテクチャ非依存のコマンド
  • 03デバッガーが停止するたびに表示されるコンテキスト表示
  • 04GDB Python APIによる拡張性
  • 05GEF-Extrasによるコミュニティ提供コマンドの拡張

ユースケース

  • exploit開発中のバイナリの動的解析
  • Linux上で未知のプログラムをリバースエンジニアリング
  • 機能が充実したGDBインターフェースを使ったCTFのpwn問題の攻略
  • 手作業でGDBスクリプトを書く手間を抑えた、アプリケーションのクラッシュデバッグ

クイックスタート

  1. 1

    Python 3.10以降のバインディングを含むGDB 10.0以降がインストールされていることを確認します

  2. 2

    GEFスクリプトをホームディレクトリにダウンロードします

    wget -O ~/.gdbinit-gef.py -q https://gef.blah.cat/py
  3. 3

    スクリプトを.gdbinitファイルに追加します

    echo source ~/.gdbinit-gef.py >> ~/.gdbinit
  4. 4

    GDBを起動してGEFが読み込まれることを確認します

    gdb -q

使う前に知っておきたいこと

  • Python 3.10以降のバインディングを含むGDB 10.0以降が必要です。
  • GDB専用で、エクスプロイト開発やリバースエンジニアリングのワークフローを対象としています。

収録されている特集

トピック

よくある質問

gef とは?
x86、ARM、MIPS、PowerPC、SPARCに対応した、exploit開発向けの拡張インターフェースをGDBに追加するPython拡張です。 GEF(GDB Enhanced Features)は、GDBにモダンなインターフェースと一連のコマンドを追加する単一のPythonスクリプトです。動的解析を行うexploit開発者やリバースエンジニアを主な対象とし、プログラムをデバッグするアプリケーション開発者が、GDBでの反復的な作業を減らすのにも役立ちます。
gef は無料で使えますか?ライセンスは?
gef は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
gef は今もメンテナンスされていますか?
半年以内に更新あり。gef の最終コミットは 2026年8月20日 です。
gef は何に使えますか?
exploit開発中のバイナリの動的解析 Linux上で未知のプログラムをリバースエンジニアリング 機能が充実したGDBインターフェースを使ったCTFのpwn問題の攻略 手作業でGDBスクリプトを書く手間を抑えた、アプリケーションのクラッシュデバッグ
gef のインストール方法は?
Python 3.10以降のバインディングを含むGDB 10.0以降がインストールされていることを確認します GEFスクリプトをホームディレクトリにダウンロードします: wget -O ~/.gdbinit-gef.py -q https://gef.blah.cat/py スクリプトを.gdbinitファイルに追加します: echo source ~/.gdbinit-gef.py >> ~/.gdbinit GDBを起動してGEFが読み込まれることを確認します: gdb -q
gef はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/hugsy/gef

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト