购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.6.2 Pwndbg和Pwngdb

Pwndbg和Pwngdb的名字很像,是两个重要的PWN调试工具,但Pwndbg是基础工具,Pwngdb是辅助工具,这两个工具都需要安装。

Pwndbg是Linux系统下gdb的常见辅助工具集合,可以提供直观的内存相关信息、栈空间排布信息、寄存器的值等,是进行堆分析的利器。它的安装方法较简单,在Ubuntu系统中输入如下命令即可实现自动安装。

安装完成后,我们还需要安装一个非常实用的插件—Pwngdb,这个插件可以补充Pwndbg中缺失的堆分析的部分命令,如parseheap、lib等。这些命令在堆分析中提供了非常直观的数据方法。Pwngdb的安装命令如下:

这两个工具的基本命令和调试命令如表2-3和表2-4所示。

表2-3 基本命令

表2-4 调试命令

读者在了解这些命令后,可以自己尝试调试一个程序。假设需要被调试的程序为aa,那么在终端命令行输入如下命令即可:

我们可以输入lib、parseheap、bins等命令来查看堆的申请状态。命令调试如图2-40所示,图中展示了堆结构信息。

图2-40 Pwndbg所展示的堆结构信息

除此之外,调试程序还存在一个问题:若程序开启了PIE动态地址,即没有准确的断点地址,怎么办呢?此时我们就需要确定程序每次加载的段基地址。段基地址使用Pwntools工具设置断点较为方便,代码如下: I5OPI1QD9lyqkJajt7II3jViUQbmcygyRX3iFAvGaQlAe4v2UUjZyATPT991z86h

点击中间区域
呼出菜单
上一章
目录
下一章
×