我正在处理 CTF 挑战,这是对粉碎堆栈的介绍。我有在 GDB 中工作的二进制文件,并且可以用可打印的字符覆盖堆栈的正确部分。
然而,挑战在于二进制文件期望 0xdeadbeef 位于正确的堆栈位置 - 我对如何输入该值有点困惑。我在网上看到过一些示例,其中使用 python 提供十六进制值作为二进制文件的参数 - 但是这个特定的二进制文件运行,打印一条查询消息,然后需要输入,而不是仅仅读取一个参数。
处理这个问题的最佳方法是什么,最初在 GDB 中确认我的方法,然后使用 NC 接收实际标志?我在 Ubuntu 上工作。
很抱歉问一个基本问题,但这一直让我绊倒。
谢谢!