gef

hugsyMIT活跃维护

给 GDB 加上现代化调试体验的增强插件,为 Linux 上的漏洞利用开发和逆向工程师提供高级调试能力。

GEF (GDB Enhanced Features) - a modern experience for GDB with advanced debugging capabilities for exploit devs & reverse engineers on Linux

2026.01发布于 2026-02-02 03:31 UTC8,429star +4 / 7 天842fork同步于 2026-11-10 17:32 UTC

怎么上手

由 README 提炼,执行前请确认
bash -c "$(curl -fsSL https://gef.blah.cat/sh)"
硬件要求按 README 说明

README 未说明硬件要求,仅要求 GDB 10.0 以上且编译时带 Python3.10+ 绑定

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

给 GDB 加上现代调试体验的插件,帮漏洞开发和逆向工程师少敲重复命令

给 GDB 加上现代化调试体验的增强插件,为 Linux 上的漏洞利用开发和逆向工程师提供高级调试能力。

核心能力

  • 用 Python API 扩展 GDB,提供大量增强命令
  • 通过架构抽象层支持 x86/ARM/MIPS/PowerPC/SPARC
  • 单文件 GDB 脚本,无额外依赖,可即时安装
  • 提供更清晰的上下文视图,减少重复传统命令
  • 支持 Python3,可基于其 API 自行扩展命令

容易踩的坑

需要 GDB 10.0 或更高版本并带 Python3.10+ 绑定,版本不够会装不上;手动安装需把 source ~/.gdbinit-gef.py 写入 ~/.gdbinit 才会生效;更多社区命令需另外安装 GEF-Extras

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本2026.01
  1. 2026.012026.01 - Substantial Snow最新正式版2026-02-02 · 2026-02-02 03:31 UTC

    Changelog: 2026.01 - Substantial Snow

    Contributors

    AuthorNumber of commits
    Gordon Messmer3
    crazy hugsy3
    GHOS7 1N 7H3 F1NG3RS1
    Guy Shimko1
    Jvle1
    Maxime Bonillo1
    Sami Kalliomäki1
    b109021181
    tesuji1
    xpoy11
    dependabot[bot]0

    Closed Issues

    Closed Pull Requests

    Commit details

    Commit log

    • 2025-01-26 7638efe • b10902118 • fix enum.Flag empty check (#1167)
    • 2025-02-12 c430473 • Gordon Messmer • Use the correct type for function passed to pthread_create. (#1171)
    • 2025-02-13 57181d2 • tesuji • Setup fallback 'debug-file-directory' (#1173)
    • 2025-02-23 265f22e • Gordon Messmer • Add a path argument to GotCommand build_line to support hugsy/gef-extras/pull/122 (#1172)
    • 2025-03-15 4098b8f • xpoy1 • Always print top chunk when run heap chunks -a (#1170)
    • 2025-03-16 c631746 • crazy hugsy • Verify gdb.parameter("debug-file"directory") returns a string (#1177)
    • 2025-03-25 5404b6f • Maxime Bonillo • Install/update sh script: Avoid overwriting existing gdb config (#1175)
    • 2025-04-08 63304c7 • Sami Kalliomäki • Fix location of syscall-tables for gef-extras installation script (#1182)
    • 2025-04-15 ee605f9 • crazy hugsy • Limit the number of instructions when guessing args in context
  2. 2025.012025.01 - Muted Actor2025-01-13 · 2025-01-13 02:54 UTC
    查看更新说明

    Changelog: 2025.01 - Muted Actor

    Highlights of Muted Actor

    • Bug Fixes: Resolved issues with scoped function calls, remote memory mappings, unicode encoding in non-ASCII locales, color swaps in heap/stack, excessive string reads, and typos across the codebase.
    • New Features: Added support for multiple filter flags in the vmmap command, a simplified clear screen command, and extended testing capabilities in CI/CD.
    • Improvements: Moved to a Python 3.10 baseline, enhanced the arch command documentation, and updated the way optional arguments are parsed.
    • RISC-V Support: Many refinements in handling core dumps and improvements for RISC-V instructions.
    • Documentation update: Removed obsolete documentation now covered by gef-extras.

    Contributors

    AuthorNumber of commits
    crazy hugsy10
    ValekoZ4
    Grazfather2
    arty-hlr1
    FunnyBiu1
    Gordon Messmer1
    Jörg Thalheim1
    Michael Krasnitski1
    Zion Leonahenahe Basque1

    New Contributors

    Closed Issues

    Closed Pull Requests

    Commit details

    Commit log

    • 2024-06-05 0ca807b • crazy hugsy • Reload settings if gef-extras scripts were loaded (#1118)
    • 2024-06-09 c450a2d • ValekoZ • Update arch command documentation (#1121)
    • 2024-06-24 6ddd780 • ValekoZ • [internal] Add a way to append values to optional arguments in parse_arguments decorator (#1122)
    • 2024-07-21 d8c7723 • Zion Leonahenahe Basque • Fix an incorrect scoped function call (introduc
  3. 2024.062024.06 - Fresh Quantity2024-06-03 · 2024-06-03 03:41 UTC
    查看更新说明

    Changelog: 2024.06 - Fresh Quantity

    Highlights of Fresh Quantity

    Contributors

    AuthorNumber of commits
    crazy hugsy29
    Grazfather5
    ValekoZ4
    Dreg3
    Gordon Messmer2
    Angelo9421
    clubby7891
    Matthias Hecker1
    mjklbhvg1
    Saverio1
    Unactive1
    whoismz1
    Yuki1

    Closed Issues

  4. 2024.012024.01 - Evergreen Response2024-01-12 · 2024-01-12 16:43 UTC
    查看更新说明

    Changelog: 2024.01 - Evergreen Response

    What's Changed in Evergreen Response

    Contributors

    AuthorNumber of commits
    Angelo9422
    Bart Trojanowski1
    crazy hugsy4
    Dreg1
    Grazfather8
    José Luis Di Biase1
    Lennard Hofmann1
    Osama Albahrani1
    Riff8
    ValekoZ1

    New Contributors 🎉

    Closed Issues

  5. 2023.082023.08 - Disguised Wedding2023-08-21 · 2023-08-21 20:24 UTC
    查看更新说明

    Changelog: 2023.08 - Disguised Wedding

    Important Note

    GEF and GEF-Extras have both moved to using the main branch as the default. Therefore if you contribute to the code, make sure your PRs are made against the main branch.

    Highlights of Disguised Wedding

    Contributors

    AuthorNumber of commits
    hugsy13
    Dreg8
    Grazfather6
    Alexander Zhang2

    New Contributors

    Closed Issues

    Closed Pull Requests

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    GEF (pronounced ʤɛf - "Jeff") is a set of commands for x86/64, ARM, MIPS, PowerPC and SPARC to assist exploit developers and reverse-engineers when using old school GDB. It provides additional features to GDB using the Python API to assist during the process of dynamic analysis and exploit development. Application developers will also benefit from it, as GEF lifts a great part of regular GDB obscurity, avoiding repeating traditional commands, or bringing out the relevant information from the debugging runtime.

    Instant Setup

    Simply make sure you have GDB 10.0 or higher compiled with Python3.10+ bindings, then:

    # via the install script
    ## using curl
    $ bash -c "$(curl -fsSL https://gef.blah.cat/sh)"
    
    ## using wget
    $ bash -c "$(wget https://gef.blah.cat/sh -O -)"
    
    # or manually
    $ wget -O ~/.gdbinit-gef.py -q https://gef.blah.cat/py
    $ echo source ~/.gdbinit-gef.py >> ~/.gdbinit
    
    # or alternatively from inside gdb directly
    $ gdb -q
    (gdb) pi import urllib.request as u, tempfile as t; g=t.NamedTemporaryFile(suffix='-gef.py'); open(g.name, 'wb+').write(u.urlopen('https://tinyurl.com/gef-main').read()); gdb.execute('source %s' % g.name)
    

    You can immediately see that GEF is correctly installed by launching GDB:

    gef-context

    A few of GEF features include:

    • One single GDB script
    • Entirely architecture agnostic, NO dependencies: GEF is battery-included and is installable instantly
    • Fast limiting the number of dependencies and optimizing code to make the commands as fast as possible
    • Provides a great variety of commands to drastically change your experience in GDB.
    • Easily extensible to create other commands by providing d more comprehensible layout to GDB Python API.
    • Full Python3 support (Python2 support was dropped - see gef-legacy).
    • Built around an architecture abstraction layer, so all commands work in any GDB-supported architecture such as x86-32/64, ARMv5/6/7, AARCH64, SPARC, MIPS, PowerPC, etc.
    • Suited for real-life apps debugging, exploit development, just as much as CTF
    • And a lot more commands contributed by the community available on GEF-Extras !!

    Check out the Screenshot page for more or try it online (user:gef/password:gef-demo)

    Documentation

    Unlike other GDB plugins, GEF has an extensive and up-to-date documentation. Users are recommended to refer to it as it may help them in their attempts to use GEF. In particular, new users should navigate through it (see the FAQ for common installation problems), and the problem persists, try to reach out for help on the Discord channel or submit an issue.

    Current status

    DocumentationLicenseCompatibilityCI Tests (main)
    DocumentationMITPython 3CI Test for GEF

    Contribute

    To get involved, refer to the Contribution documentation and the guidelines to start.

    Sponsors

    Another way to contribute to keeping the project alive is by sponsoring it! Check out the sponsoring documentation for details so you can be part of the list of those awesome sponsors.

    Happy Hacking 🍻