pwntools调用gdb调试时无法使用bins、heap等命令

Tuesday, January 17, 2023
本文共332字
1分钟阅读时长
pwn

⚠️本文是作者P3troL1er原创,首发于https://peterliuzhi.top/tricks/pwntools%E8%B0%83%E7%94%A8gdb%E8%B0%83%E8%AF%95%E6%97%B6%E6%97%A0%E6%B3%95%E4%BD%BF%E7%94%A8binsheap%E7%AD%89%E5%91%BD%E4%BB%A4/。商业转载请联系作者获得授权,非商业转载请注明出处!

A man’s growth is seen in the successive choirs of his friends — Ralph Waldo Emerson

问题

在使用pwntools调试程序的时候,在gdb窗口中使用pwndbg的特殊命令出现如下警告:

文内图片

按指示下载了相关的库之后警告却并没有消失,这实在是一件非常蛋疼的事情

如果不能使用pwndbg相关命令,我们就只能用vmmap查看heap基址,然后用x一个一个chunk看,非常麻烦

解决方法(大部分情况下)

在gdb窗口输入:

set resolve-heap-via-heuristic on

这和我们用vmmap查看heap基址的原理一样,pwndbg会尝试通过这个基址计算出heap的信息,这不一定是对的,但至少在很多情况下能用

原本没有这个功能,是一位大佬发现gef中没有调试符号也能正常使用,于是参考gef给pwndbg做了一个PR,详情见Heap inspection without libc debug symbols · Issue #937 · pwndbg/pwndbg · GitHub,感谢这位师傅

文内图片