【发布时间】:2010-12-01 00:02:45
【问题描述】:
我正在尝试运行缓冲区溢出示例来运行一些代码,但问题是当我尝试运行代码只是为了获得缓冲区溢出时,Windows 会提示“程序已停止工作,Windows 正在检查程序的解决方案。因此,当我尝试确保它仅溢出一个字节时。程序只是运行,但不会暂停命令窗口以让我看到分段错误错误地址。哪个据我了解,我需要更改它并让它作为传递的参数运行我想要的窗口。这是简单的程序。
#define BUF_LEN 5
int main(int argc, char **argv)
{
char buf[BUF_LEN];
if (argc > 1)
{
strcpy(buf, argv[1]);
}
return 0;
printf(buf);
system("pause");
}
【问题讨论】:
-
argv[1] 的长度是多少?
-
我把它设为至少大于buff,例如buff现在在这个程序中是5,所以我把它设为“AAAAAAAAA”
标签: c windows-7 buffer-overflow