GDB进入断点时抛出错误

Tec*_*chJ 4 c gdb buffer-overflow

我正在尝试通过此链接跟踪有关缓冲区溢出的视频指南 ,下面是我正在尝试的代码。

#include <stdio.h>

GetInput() 
{
    char buffer[8];

    gets(buffer);
    puts(buffer);   
}

main()
{
   GetInput();       
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

我在gdb调试中遇到了麻烦,而在第7行进入ie时,出现以下错误:

#include <stdio.h>

GetInput() 
{
    char buffer[8];

    gets(buffer);
    puts(buffer);   
}

main()
{
   GetInput();       
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

我正在按照与教程中所述完全相同的步骤进行操作。我在虚拟机上使用32位Kali Linux

谁能帮助我解决这个问题。

小智 5

该帖子的作者正在遵循缓冲区溢出开发课程。所有人都没有帮助他,而是跳出了话题​​信息。我们都知道代码是错误的,但是,如果不是在错误的代码上,那么应该如何学习缓冲区溢出利用?

在这种情况下,调试无法正常进行,因为调试文件的位置在其他位置。

(gdb) show debug-file-directory
The directory where separate debug symbols are searched for is "/usr/lib/debug"
Run Code Online (Sandbox Code Playgroud)

在gdb中执行以下命令

(gdb) set debug-file-directory
Run Code Online (Sandbox Code Playgroud)

现在,您将能够调试代码。高频

  • 非常感谢。我也在学习 BO 视频课程并遇到了这个问题。谷歌搜索登陆这里,这实际上帮助我解决了这个问题。谢谢! (2认同)