【发布时间】:2017-06-10 18:13:46
【问题描述】:
我正在使用带有二进制漏洞利用练习(学习如何使用缓冲区溢出、编写 shellcode 等)的 Ubuntu 14.04 机器。 到目前为止,我已经能够通过 gdbserver 运行这些程序,这些程序专门用 C 语言编写并用 gcc 编译,并通过 IDA Pro 6.8 远程连接到它。
但是,现在我正在尝试运行一个程序,它没有遇到 IDA 中设置的断点。两者之间有明显的通信,我可以通过 IDA 执行程序,但它不会在我设置的任何断点处停止,包括程序执行流程中肯定会被命中的断点。我在 addresses 上设置了断点,因此无法获得调试信息不是原因。 此外,当我使用 gdb 调试它时,它工作得非常好。 我以为是因为我打开了ASLR,但是当我将其关闭时,它仍然无法正常工作。可能是什么原因?
程序是这样编译的(只有一个文件):
gcc -pie -fPIE -fno-stack-protector -o prog prog.c
【问题讨论】:
标签: c linux gcc reverse-engineering ida