Pwnning 是一门艺术。
HeapInspect 旨在让 堆 变得更加美观。
现在此工具是 nadbg 的一个插件。试试看!
HeapShower(详细)PrettyPrinter(彩色,摘要)工具的快速使用示例。




你也可以将其作为 gdb 插件使用,当 pwndbg 或其他插件无法分析堆时非常有用。
sed -i "1i source `pwd`/gdbscript.py" ~/.gdbinit # 或者,你也可以手动添加那一行
注意



使用非常简单。之后我会将其打包成软件包。
from heapinspect.core import *
hi = HeapInspector(1234) # 这里是 pid
hs = HeapShower(hi)
print(hs.fastbins)
print(hs.smallbins)
print(hs.largebins)
print(hs.unsortedbins)
print(hs.tcache_chunks)
hs.relative = 1 # 相对模式,参见快速上手
print(hs.fastbins)
sleep(10)
# 现在假设堆状态发生了变化
hs.update() # 使用这个来刷新
pp = PrettyPrinter(hi)
print(pp.all) # 漂亮打印机
pp.update() # 使用这个来更新
这里有一些测试用例。
heapinspect/tests/ $ python test.py # 这会运行所有测试用例来检查这个工具。
......
......
test case unsortedbins64 at test/testcases/libc-2.27/64bit
pid:6704
========================= fastbins =========================
========================= unsortedbins =========================
chunk(0x7f9aae2e6720): prev_size=0x0 size=0xb1 fd=0x7f9aacdfbca0 bk=0x7f9aae2e6880
chunk(0x7f9aae2e6880): prev_size=0x0 size=0xb1 fd=0x7f9aae2e6720 bk=0x7f9aacdfbca0
========================= smallbins =========================
========================= largebins =========================
========================= tcache =========================
tcache[9]:
chunk(0x7f9aae2e6670): prev_size=0x0 size=0xb1 fd=0x7f9aae2e65d0 bk=0x0
chunk(0x7f9aae2e65c0): prev_size=0x0 size=0xb1 fd=0x7f9aae2e6520 bk=0x0
chunk(0x7f9aae2e6510): prev_size=0x0 size=0xb1 fd=0x7f9aae2e6470 bk=0x0
chunk(0x7f9aae2e6460): prev_size=0x0 size=0xb1 fd=0x7f9aae2e63c0 bk=0x0
chunk(0x7f9aae2e63b0): prev_size=0x0 size=0xb1 fd=0x7f9aae2e6310 bk=0x0
chunk(0x7f9aae2e6300): prev_size=0x0 size=0xb1 fd=0x7f9aae2e6260 bk=0x0
chunk(0x7f9aae2e6250): prev_size=0x0 size=0xb1 fd=0x0 bk=0x0
详细的文档字符串已经写入源代码中。
我在 docs 目录下构建了 sphinx 文档。只需在浏览器中打开 docs/build/html/index.html 即可。
文档更新。
非功能性更新。
首次发布
下一个版本将作为正式发布。
这不是一个稳定版本。我正在尝试修复由于不同 glibc 版本导致的错误。我需要帮助来测试这个版本。
下一个版本将添加多 libc 支持。堆差异对比和堆检查将在后续添加。
HeapShowerbins 现在从 bk 而不是 fd 开始搜索,以符合 glibc 的行为方式HeapRecoder,将用于堆差异对比smallbins 和 largebinsfastbin 原型unsortedbin 原型bins 原型tcache 原型C_Struct 用于处理 C 结构体class HeapInspectorarena 的更多信息proc_util 中添加 class Proctest.py 中进行实验性测试