【发布时间】:2020-08-09 04:03:00
【问题描述】:
我正在尝试为大学课程做一个 stackoverflow。我要利用的二进制文件有一个金丝雀,但是,有一种方法可以将该金丝雀泄漏到标准输出。金丝雀当然由一些随机字节组成,所以我不能只从程序输出到标准输出的字符串中读取它们。
出于这个原因,我正在使用 python 和 pwntools,例如 p.recv(timeout = 0.01).encode("hex")。
(我使用 pwntools 只是因为我不知道以十六进制格式读取输出的另一种方法,如果有更简单的方法我当然可以使用其他方法)
这或多或少可以按预期工作,我设法写入了经过金丝雀的内存区域。但是,我得到了一个段错误,所以我显然对我造成的 stackoverflow 有一些问题。我需要一种调试方法,例如在提供导致堆栈溢出的输入后查看堆栈。
现在不用多说,实际的问题是:我可以在 GDB 或其他可以显示堆栈内容的程序中调试我使用 pwntools(如 process("./myprog"))启动的进程吗?强>
我已经尝试在 python 中获取 pid 并使用 gdb attach 来附加到该 pid,但这不起作用。
注意:我试图利用的二进制文件具有 guid 集。不知道这是否重要。
【问题讨论】:
标签: gdb stack-overflow pwntools