惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - PKICA

汇编语言语法详解 gdb汇编调试 gdb-pwndbg的安装与使用指南 C语言thread_local linux系统readelf命令使用指南 gcore转储进程内存 gdb查看命令 RGB与YUV颜色编码的区别 Rust原子类型 C++ STL求两个集合交集差集 gdb调试集锦 ubuntu24.0.4使用root用户登录 ubuntu24.0.4输入密码后跳回登录界面 AI内存压缩技术TurboQuant及存疑 ubuntu切换到指定内核版本 在没有顶级科技大佬直接背书的情况下deepseek为啥能够异军突起? HuggingFace和deepseek的关系 当前主流AI大模型 Rust写时克隆Cow系列2
gdb调试插件gef
PKICA · 2026-04-15 · via 博客园 - PKICA

在计算机领域,GEF (GDB Enhanced Features) 是一款专为逆向工程、漏洞利用和安全研究设计的 GDB (GNU Debugger) 插件。它利用 Python API 增强了 GDB 的功能,提供了更直观、更丰富的信息展示界面。

一、 安装方法

GEF 几乎不需要外部依赖,主要通过一个 .gdbinit 脚本起作用。

  • 准备环境:确保系统中已安装 GDB (版本 7.7 及以上) 和 Python
  • 一键安装:在 Linux 终端执行以下命令(选择其一):
    • 使用 wget:
      bash -c "$(wget https://gef.blah.cat/sh -O -)" // 自动添加支持,多插件不建议使用该方法。
      
    • 使用 curl:
      bash -c "$(curl -fsSL https://gef.blah.cat/sh)" // 自动添加支持,多插件不建议使用该方法。
      wget -O ~/.gdbinit-gef.py -q https://gef.blah.cat/py //手动
      echo "source ~/.gdbinit-gef.py" >> ~/.gdbinit
  • 验证安装:启动 GDB,如果看到 gef> 提示符,则表示安装成功。("~/.gdbinit"为实际配置文件,想全局共用建议放到/etc/gdb/gdbinit)

二、 核心功能与使用

GEF 启动后会提供一个多面板界面,实时显示寄存器、堆栈、代码汇编等信息。

  • 界面组成:
    • Registers: 显示当前所有寄存器的状态。
    • Stack: 显示栈顶内容。
    • Code: 显示当前指令及其上下文。
    • Trace: 显示函数调用链。
  • 常用命令:
    • context:重新刷新并显示当前的调试状态面板。
    • pattern create [size]:生成用于确定溢出偏移量的特征字符串。
    • pattern search [address]:搜索特征字符串以定位偏移位置。
    • vmmap:查看进程的内存布局(如堆、栈、共享库的地址范围)。
    • checksec:检查二进制文件的安全保护机制(如 NX、PIE、Canary 等)。
    • heap:管理和查看堆分配情况(需特定环境支持)。
    • entry-break:在程序入口处自动下断点并运行。

三、 常见问题

  • 版本更新:若要获取最新功能,可在 GDB 内部执行 gef config gef.disable_update false 后使用 gef update
  • 多插件共存如果同时安装了 PEDAPwndbg,可以通过修改 ~/.gdbinit 文件来手动切换加载哪一个脚本。如果想让各插件互不影响,可以使用下述方法:

由于 gdb -p <PID> 的优先级极高,会抢在 init-gef 之前触发符号加载并报错,你必须在脚本中拦截 PID 参数,让它在 GEF 初始化之后再执行 attach

 可以在gdb中查看加载的符号链接索引位置:(gdb) show index-cache directory

1). 修改脚本 /usr/bin/gdb-gef

将脚本改为手动解析参数的模式。这种写法可以确保:先加载插件,后挂载进程

#!/bin/bash

# 初始化变量
PID=""
OTHERS=()

# 解析参数,提取出 -p 后面的 PID
while [[ $# -gt 0 ]]; do
    case $1 in
        -p) PID="$2"; shift 2 ;;
        *) OTHERS+=("$1"); shift ;;
    esac
done

if [ -n "$PID" ]; then
    # 核心技巧:不直接使用 gdb -p,而是进入后执行 attach 命令
    exec gdb -q \
        -ex "init-gef" \
        -ex "attach $PID" \
        "${OTHERS[@]}"
else
    # 如果没有 -p,则正常启动
    exec gdb -q -ex "init-gef" "${OTHERS[@]}"
fi

2). 检查 /etc/gdb/gdbinit 配置

确保你的 define 块指向的是绝对路径,这样最稳妥:

define init-gef
    source $HOME/.gdbinit-gef.py
end
document init-gef
    Initializes GEF (GDB Enhanced Features)
end

参考资料:

GEF

GDB的GEF插件