SizeOfImage-Member, das einen Programmabsturz verursacht

Ich versuche, BYTE-Muster in Programmen zu suchen, aber aus irgendeinem Grund, wenn ich den Wert von zuweisenMINFO.SizeOfImage zuModuleSize es führt dazu, dass das Programm, in das ich die DLL injiziert habe, abstürzt.

DWORD FindPattern(const BYTE* Pattern,SIZE_T PatternSize)
{
    DWORD ModuleBase = (DWORD)GetModuleHandle(NULL);
    DWORD ModuleSize = 0;
    MODULEINFO MINFO;
    HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS,0,GetCurrentProcessId());

    if(hProcess)
    {
        GetModuleInformation(hProcess,GetModuleHandle(NULL),&MINFO,sizeof(MODULEINFO));
        CloseHandle(hProcess);
        ModuleSize = MINFO.SizeOfImage;
    }
    else
        return 0;

    for(int i = 0;i < ModuleSize;i++)
    {
        if(memcmp((void*)(ModuleBase + i),Pattern,PatternSize) == 0)
            return ModuleBase + i;
    }
    return 0;
}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage