Repolode
hugsy

hugsy/gef

为 GDB 提供增强功能的 Python 扩展,面向漏洞利用开发与逆向分析。

Star
8,424
Fork
842
未关闭 Issue
18
最近提交
3个月前

这是什么?

GEF(GDB Enhanced Features)是一个单文件的 Python 脚本,为 GDB 增加了更现代的交互界面和一批实用命令。它主要面向做动态分析的漏洞利用开发者和逆向工程师,也适合需要频繁调试程序、希望减少重复 GDB 操作的应用开发者。

GEF 基于 GDB 的 Python API 实现,并通过架构抽象层支持 x86-32/64、ARMv5/6/7、AARCH64、SPARC、MIPS 和 PowerPC 等架构,命令在这些平台上都可使用。它不依赖额外的第三方库,只需在 ~/.gdbinit 中加载该脚本即可安装,运行环境需要 GDB 10.0 及以上并带 Python 3 绑定。

每次程序停止时,GEF 会显示上下文信息,并提供大量用于查看内存、寄存器和运行时状态的命令。社区贡献的扩展命令则托管在独立的 GEF-Extras 仓库中。

核心功能

  • 01单个 GDB 脚本,无外部依赖
  • 02命令支持 x86、ARM、MIPS、PowerPC、SPARC 等多种架构
  • 03每次断点停止时显示运行上下文
  • 04基于 GDB Python API,可自行扩展命令
  • 05可通过 GEF-Extras 获取社区提供的扩展命令

适用场景

  • 在漏洞利用开发过程中对二进制程序进行动态分析
  • 在 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 是什么?
为 GDB 提供增强功能的 Python 扩展,面向漏洞利用开发与逆向分析。 GEF(GDB Enhanced Features)是一个单文件的 Python 脚本,为 GDB 增加了更现代的交互界面和一批实用命令。它主要面向做动态分析的漏洞利用开发者和逆向工程师,也适合需要频繁调试程序、希望减少重复 GDB 操作的应用开发者。
gef 可以免费使用吗?用的什么许可证?
gef 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
gef 还在维护吗?
半年内有更新。gef 最近一次提交是在 2026年8月20日。
gef 适合用来做什么?
在漏洞利用开发过程中对二进制程序进行动态分析 在 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

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目