前言:
这是一个调试时必不可少的神器,
github地址在:https://github.com/longld/peda
目录:
安装:
两条简单命令即可完成:
git clone https://github.com/longld/peda.git ~/peda
echo “source ~/peda/peda.py” >> ~/.gdbinit
peda 的一个实用命令 checksec 检测安全保护。
另一个实用命令 searchmem 用搜索内存
gdb命令参数:
| 命令 | 说明 |
|---|---|
| file 路径/文件名 | 附加文件 |
| r | 开始执行 |
| c | 继续执行 |
| x addre | 查看地址addre处存储的数据值 |
| ni | 执行下一条汇编指令,如果吓一跳指令是一个函数调用(即call指令),那么执行完这个call |
| si | 执行下一条汇编指令,如果吓一跳指令是一个函数调用(即call指令),那么进入这个函数调用,并执行函数的第一条汇编指令 |
| step | 单步步入 |
| next | 单步步过 |
| b *addre | 下断点 |
| enable | 激活断点 |
| disable | 禁用断点 |
| info b | 查看断点 |
| del num | 删除断点 |
| x/wx $esp | 以4字节16进制显示栈中内容 |
| stack 100 | 显示栈中100项 |
| find 文件名 | 快速查找 |
| s | 按字符串输出 |
| x | 按十六进制格式显示变量 |
| d | 按十进制格式显示变量 |
| u | 按十六进制格式显示无符号整型 |
| o | 按八进制格式显示变量 |
| t | 按二进制格式显示变量 |
| a | 按十六进制格式显示变量 |
| c | 按字符格式显示变量 |
| f | 按浮点数格式显示变量 |
x/<n/f/u> |
n、f、u是可选的参数,例如:b表示单字节,h表示双字节,w表示四字 节,g表示八字节 |
| x/s addre | 查看字符串 |
| x/wx addre | 查看DWORD |
| x/c addre | 单字节查看 |
| x/16x $esp+12 | 查看寄存器偏移 |
| set args 可指定运行时参数 | 如:set args 10 20 30 40 50 |
| show args | 查看设置好的运行参数 |
peda命令参数:
| 命令 | 说明 |
|---|---|
| aslr | 显示/设置GDB的ASLR设置 |
| checksec | 检查二进制文件的各种安全选项 |
| dumpargs | 在呼叫指令处停止时显示传递给函数的参数 |
| dumprop | 将特定内存范围内的所有ROP小工具转储 |
| elfheader | 从被调试的ELF文件中获取标题信息 |
| elfsymbol | 从ELF文件获取非调试符号信息 |
| lookup | 搜索所有地址/参考地址属于一个内存范围 |
| patch | 修补程序内存以string / hexstring / int的地址开始 |
| pattern | 生成,搜索或写入循环模式到内存 |
| procinfo | 显示/ proc / pid / |
| pshow | 显示各种PEDA选项和其他设置 |
| pset | 设置各种PEDA选项和其他设置 |
| readelf | 从ELF文件获取标题信息 |
| ropgadget | 获取二进制或库的通用ROP小工具 |
| ropsearch | 在内存中搜索ROP小工具 |
searchmem|find |
在内存中搜索模式; 支持正则表达式搜索//查找用,例如searchmem“/ bin / sh”libc |
| shellcode | 生成或下载常用的shellcode |
| skeleton | 生成python漏洞利用代码模板 |
| vmmap | Get virtual mapping address ranges of section(s) in debugged process //可以用来查看栈、bss段是否可以执行 |
| xormem | 用一个键异或存储区域 |
总结
转自:https://blog.csdn.net/qq_30445397/article/details/103478687