我正在使用CTF,并且有一个用C编写的软件,但是没有源代码。我正在尝试使用printf做一个libc缓冲区溢出。 GDB给了我指向shell和libc系统的指针。但是我无法在输入中找到缓冲区的大小。
我已经尝试通过手动输入足够的输入(例如50)来引起强制溢出和段错误,从而进行暴力破解。但是,当使用断点和x / 500xb $ esp单步执行每个调用函数时,在内存显示中找不到我的输入值(0x11)。如果我经历了所有的通话中断,则结束时不会出现错误(使用少于50个输入字符)。我想了解如何找到输入中读取的该缓冲区的起始内存位置和总大小。
我可以在GDB中看到带有disas main的printf命令,但是在它后面放置一个中断时,此时没有数据写入。