如何使Windows 10 C ++程序可用于缓冲堆栈cookie溢出?

时间:2019-06-24 06:49:59

标签: c++ security buffer-overflow

我正在构建测试用例以学习软件安全性,但是我想通过SEH创建堆栈cookie绕过。这是我的代码。

#include <cstdio>
#pragma comment(lib, "Ws2_32.lib")
#pragma warning(disable : 4996)

int main() {
    char name[32];
    printf("Reading name from file...\n");
    FILE* f = fopen("name.dat", "rb");
    if (!f)
        return -1;
    fseek(f, 0L, SEEK_END);
    long bytes = ftell(f);
    fseek(f, 0L, SEEK_SET);
    int pos = 0;
    while (pos < bytes) {
        int len = bytes - pos > 200 ? 200 : bytes - pos;
        fread(name + pos, 1, len, f);
        pos += len;
    }
    name[bytes] = '\0';
    fclose(f);
    printf("Hi, %s!\n", name);
    return 0;
}

这是我用来生成可执行文件的命令,但是在启动计算器时此命令不起作用

cl stack_cookie_seh.cpp /Od /GS /link /DYNAMICBASE:NO /NXCOMPAT:NO

0 个答案:

没有答案