gpt4 book ai didi

c++ - 在 Windows 10 上创建缓冲区溢出

转载 作者:行者123 更新时间:2023-11-28 08:34:58 24 4
gpt4 key购买 nike

很快,我将在我的类(class)(攻读计算机科学学位)中做一次演讲,我想给出一个缓冲区溢出的基本示例以及它为什么会成为问题。但是,我的缓冲区溢出无法正常工作。

问题是,一旦引起崩溃,进程就终止了,即使进程被附加到像xdbg这样的调试器(在VS中,抛出异常)。我认为这是由 Windows 10 内置的保护措施之一引起的。我已经阅读了以下文章试图禁用它们并确保在项目属性中禁用 /GS 编译项目,但是问题仍然存在。

Exploit protections disabled

代码如下:

#include <iostream>
#include <string>
using namespace std;

int main()
{
string input;
char overflow[5];
cin >> input;
strcpy(overflow, input.c_str());
}

最佳答案

这是缓冲区溢出的一个例子

#include <iostream>
#include <string>
#include <string.h>
using namespace std;

struct Buffers {
char buffer1[6];
char buffer2[6];
};

int main(int argc)
{
string input;
cin >> input;

Buffers b = {};
strcpy(b.buffer2, "Hello");
cout << b.buffer2 << endl;

strcpy(b.buffer1, input.c_str());

cout << b.buffer2 << endl;
}

我使用 testing 作为输入,但我想您甚至不需要输入。我假设这是您演示的一部分,即用户输入是缓冲区溢出的常见位置。

关于c++ - 在 Windows 10 上创建缓冲区溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59402220/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com