Как сделать программу Windows 10 C ++ пригодной для буферизации переполнения с помощью стека cookie? - PullRequest
0 голосов
/ 24 июня 2019

Я создаю контрольные примеры для изучения безопасности программного обеспечения, но я хочу создать обход файла cookie стека через SEH. это мой код.

#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
...