gdb/pwndbg 常用命令简单整理
本地环境:GNU gdb (Debian 7.12-6) 7.12.0.20161007
*为可选 黑色 为gdb原生命令 绿色 为 pwndbg 或 peda 插件命令
| 命令 | 缩写 | 效果 |
|---|---|---|
| gdb <file> <*pid> | 添加新程序 | |
| gdb attach <pid> | 负载运行的程序 | |
| set args <*argv> | 设置程序运行参数 | |
| show args | 查看设置好的运行参数 | |
| quit | q | 退出gdb |
| symbol <file> | sy | 导入符号表 |
| info <*b> | i | 查看程序的状态/*查看断点 |
| frame | f | 查看栈帧 |
| backtrace | bt | 查看堆栈情况 |
| list | l | 显示源代码 (debug模式) |
| display | disp | 跟踪查看某个变量 |
| start | s | 启动程序并中断在入口 debug模式停在main(),否则停在start() |
| run | r | 直接运行程序直到断点 |
| continue | c | 暂停后继续执行程序 |
| next | n | 单步步过 |
| step | s | 单步步入,函数跟踪 |
| finish | fin | 跳出,执行到函数返回处 |
| break |
b | 下断点 |
| watch | 下内存断点并监视内存情况 | |
| p | 打印符号信息(debug模式) | |
| i r a | 查看所有寄存器 | |
| i r <esp/ebp..> | 查看某个寄存器 | |
| set $esp = 0x01 | 修改某个寄存器的值 | |
| heap | 查看分配的chunk | |
| vmmap | 查看内存分配情况 | |
| bin | 查看 Bin 情况 | |
| x /<num><n/f/u> |
显示内存信息,具体用法附在下面 | |
| context | 打印 pwnbdg 页面信息 | |
| dps <addr> | 优雅地显示内存信息 | |
| disassemble <func> | 打印函数信息 | |
| vmmap | 显示程序内存结构 | |
| search <*argv> | 搜索内存中的值 输入 search -h 可查询用法 |
|
| checksec | 查看程序保护机制 | |
| parseheap | 优雅地查看分配的chunk | |
| aslr <on/off> | 打开/关闭 ASLR 保护 | |
| pshow | 显示各种踏板选项和其他设置 | |
| dumpargs <num> | 显示在调用指令处停止时传递给函数的参数 | |
| dumprop <from> <to> | 显示特定内存范围内的所有ROP gadgets | |
| elfheader | 从调试的elf文件获取头信息 | |
| elfsymbol | 从ELF文件获取非调试符号信息 | |
| procinfo | 显示来自/proc/pid的各种信息 | |
| readelf | 从elf文件获取头信息 | |
| x指令的具体用法:n、f、u为控制打印形式的参数 |
'num' 表示打印的数量
'n' 代表打印格式,可为o(八进制),x(十六进制),d(十进制),u(无符号十进制),t(二进制),f(浮点类型),a(地址类型),i(解析成命令并反编译),c(字符)和s(字符串)
'f' 用来设定输出长度,b(byte),h(halfword),w(word),giant(8bytes)。
'u' 指定单位内存单元的字节数(默认为dword) 可用b(byte),h(halfword),w(word),giant(8bytes)替代
x指令也可以显示地址上的指令信息,用法:x/i

浙公网安备 33010602011771号