В настоящее время мой код может получить энтропию и смещение файлов PE-файлов размером менее 3 МБ, протестированные с помощью notepad.exe. Однако я получаю ошибки всякий раз, когда пытаюсь проанализировать файл большего размера.
Я не уверен, как я должен решить эту проблему. Но мой лектор сказал мне создать еще одну похожую функцию. Очень признателен, если кто-то может мне помочь в этом.
Ошибка отображается в CLI:
Call to ReadFile() failed.
Error Code: 998
Часть ошибки:
dwFileSize = GetFileSize(hFile, NULL);
if (dwFileSize != INVALID_FILE_SIZE)
{
bFile = (byte*)malloc(dwFileSize);
Ваш код ошибки расшифровывается как «Неверный доступ к ячейке памяти», и вы не проверяете возвращаемое значение malloc, и даже если вам нужно, вам нужно зацикливаться на ReadFile, чтобы прочитать все это.
Вы исчерпали память. Вам, безусловно, нужно переделать свой алгоритм.
И, как отметил Ханс Пассант, у вас есть утечка памяти, потому что вы никогда не освобождаете память файла, когда с ней покончено. C ++ не является сборщиком мусора.
Других решений пока нет …