PEDA

介绍

PEDA 是一个 GDB 的插件,主要功能是高亮显示反汇编代码、寄存器、内存信息,提高 debug 的效率,同时 PEDA 还为 GDB 添加一些实用新的命令,比如 checksec 可以查看程序开启了那些安全机制等

安装

三选一

1. peda

链接

$ git clone https://github.com/longld/peda.git ~/peda
$ echo "source ~/peda/peda.py" >> ~/.gdbinit 

2. gef

链接

$ wget -O ~/.gdbinit-gef.py -q https://github.com/hugsy/gef/raw/master/gef.py
$ echo "source ~/.gdbinit-gef.py" >> ~/.gdbinit

3. pwndbg

链接

4. 确认插件是否有效

使用gdb -q xxx命令启动调试程序,出现类似字符串,说明已经成功安装

5. 分别启用插件

修改.gdbinit文件的内容为如下配置:

此外,在 /usr/bin 文件夹中创建以下 3 个文件:

  1. 首先创建 /usr/bin/gdb-peda 并粘贴以下内容:

  2. /usr/bin/gdb-pwndbg

  3. /usr/bin/gdb-gef

命令

基础命令

插件命令

  • aslr --- 显示/设定GDB的ASLR(地址空间配置随机加载)设置

  • checksec - 检查二进制文件的各种安全选项

  • dumpargs - 函数将要被调用时,显示将要被传入函数的所有参数(默认会在反汇编代码下方自动显示)

  • dumprop - 在给定内存范围中Dump出所有ROP gadgets

  • elfheader - 从被调试的ELF文件中获取标题信息

  • elfsymbol - 从ELF文件获取非调试符号信息(plt表)

  • lookup - 搜索所有地址/参考地址属于一个内存范围

  • patch - 修补程序内存以string / hexstring / int的地址开始

  • procinfo - 显示/ proc / pid /

  • pshow - 显示各种PEDA选项和其他设置

  • pset - 设置各种PEDA选项和其他设置

  • pattern - 生成字符串模板 写入内存 用于定位溢出点

    • pattern create size 生成特定长度字符串

    • pattern offset value 定位字符串

  • procinfo – Display various info from /proc/pid/

  • pshow – Show various PEDA options and other settings

  • pset– Set various PEDA options and other settings

  • readelf - 从ELF文件获取标题信息

  • ropgadget - 获取二进制或库的通用ROP小工具

  • ropsearch - 在内存中搜索ROP小工具

  • searchmem - 用搜索内存

    • searchmem|find - 在内存中查找字符串,支持正则表达式,例如`searchmem "/bin/sh" libc``

  • ``shellcode` - 生成或下载常用的shellcode。

  • skeleton - 生成python漏洞利用代码模板

  • vmmap - 可以用来查看栈、bss段是否可以执行

  • xormem - 用一个键异或存储区域

  • ptype struct link_map - 查看link_map定义

  • p &((struct link_map*)0)->l_info - 查看l_info成员偏移

最后更新于

这有帮助吗?