GDB 在进入断点时抛出错误
GDB throws error while stepping into at breakpoint
我正在尝试观看此 link 中有关缓冲区溢出的视频教程
下面是我正在尝试的代码。
#include <stdio.h>
GetInput()
{
char buffer[8];
gets(buffer);
puts(buffer);
}
main()
{
GetInput();
return 0;
}
我在 gdb 调试中遇到问题,当我进入第 7 行时,出现以下错误:
_IO_gets (buf=0xbffff458 "k4[=11=]4\b") at iogets.c:33
33 iogets.c: No such file or directory.
我正在按照教程中提到的完全相同的步骤进行操作。
我在 virtual box
上使用 32 位 Kali linux
谁能帮我解决这个问题。
原因很简单,glibc源代码丢失。无论如何都没关系,因为错误不太可能出现在 glibc 中,在这种情况下,您的代码使用的是危险的、已弃用的 gets()
,因此它很容易溢出 buffer
数组,导致 未定义的行为 。
post 的作者正在学习缓冲区溢出利用课程。每个人都没有帮助他,而是跳出了题外话的信息。我们都知道代码是错误的,但是,如果不是糟糕的代码,你应该如何学习缓冲区溢出利用?
在这种情况下,调试无法正常工作,因为调试文件的位置在其他地方。
(gdb) show debug-file-directory
The directory where separate debug symbols are searched for is "/usr/lib/debug"
在gdb中执行以下命令
(gdb) set debug-file-directory
现在您将能够调试您的代码。高频
我正在尝试观看此 link 中有关缓冲区溢出的视频教程 下面是我正在尝试的代码。
#include <stdio.h>
GetInput()
{
char buffer[8];
gets(buffer);
puts(buffer);
}
main()
{
GetInput();
return 0;
}
我在 gdb 调试中遇到问题,当我进入第 7 行时,出现以下错误:
_IO_gets (buf=0xbffff458 "k4[=11=]4\b") at iogets.c:33
33 iogets.c: No such file or directory.
我正在按照教程中提到的完全相同的步骤进行操作。 我在 virtual box
上使用 32 位 Kali linux谁能帮我解决这个问题。
原因很简单,glibc源代码丢失。无论如何都没关系,因为错误不太可能出现在 glibc 中,在这种情况下,您的代码使用的是危险的、已弃用的 gets()
,因此它很容易溢出 buffer
数组,导致 未定义的行为 。
post 的作者正在学习缓冲区溢出利用课程。每个人都没有帮助他,而是跳出了题外话的信息。我们都知道代码是错误的,但是,如果不是糟糕的代码,你应该如何学习缓冲区溢出利用?
在这种情况下,调试无法正常工作,因为调试文件的位置在其他地方。
(gdb) show debug-file-directory
The directory where separate debug symbols are searched for is "/usr/lib/debug"
在gdb中执行以下命令
(gdb) set debug-file-directory
现在您将能够调试您的代码。高频