PEDA
PEDA - 针对GDB的Python漏洞利用开发协助
主要特点:
- 增强gdb的显示:在调试过程中着色并显示反汇编代码,寄存器和内存信息。
- 添加命令以支持调试和利用开发(有关命令的完整列表,请使用
peda help
):aslr
- 显示/设置GDB的ASLR设置checksec
- 检查二进制的各种安全选项dumpargs
- 显示在调用指令处停止时传递给函数的参数dumprop
- 将所有ROP小工具转储到特定的内存范围内elfheader
- 从调试的ELF文件中获取标头信息elfsymbol
- 从ELF文件中获取非调试符号信息lookup
- 搜索属于内存范围的地址的所有地址/引用patch
- 补丁内存从字符串/ hexstring / int开始pattern
- 生成,搜索或写入循环模式到内存procinfo
- 显示来自/ proc / pid /的各种信息pshow
- 显示各种PEDA选项和其他设置pset
- 设置各种PEDA选项和其他设置readelf
- 从ELF文件中获取标头信息ropgadget
- 获取二进制或库的常见ROP小工具ropsearch
- 在内存中搜索ROP小工具searchmem|find
- 在内存中搜索模式; 支持正则表达式搜索shellcode
- 生成或下载常见的shellcode。skeleton
- 生成python漏洞利用代码模板vmmap
- 在调试过程中获取部分的虚拟映射地址范围xormem
- 使用密钥对存储区域进行异或
安装
git clone https://github.com/longld/peda.git ~/peda
echo "source ~/peda/peda.py" >> ~/.gdbinit
echo "DONE! debug your program with gdb and enjoy"
GDB-peda调试总汇
-
break *0x400100 (b main)
:在 0x400100 处下断点tb
一次性断点info b
:查看断点信息delete [number]
:删除断点watch *(int *)0x08044530
:在内存0x0804453处的数据改变时stop -
x /4xg $ebp
:查看ebp开始的4个8字节内容(b:单字节,h:双字节,w:四字节,g:八字节;x:十六进制,s:字符串输出,i:反汇编,c:单字符) -
p $eax
:输出eax的内容set $eax=4
:修改变量值 -
c
:继续运行r
:重新开始运行ni
:单步步过si
:单步步入fini
:运行至函数刚结束处return expression
:将函数返回值指定为expression -
bt
:查看当前栈帧 -
info f
:查看当前栈帧 -
context
:查看运行上下文 -
stack
:查看当前堆栈 -
call func
:强制函数调用 -
ropgagdet
:找common rop -
vmmap
:查看虚拟地址分布 -
shellcode
:搜索,生成shellcode -
ptype struct link_map
:查看link_map定义 -
p &((struct link_map*)0)->l_info
:查看l_info成员偏移