目前,我的代码能够获取小于3MB的PE文件的熵和文件偏移量,使用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 以读取整个内容。
你的内存不足。您当然需要重新设计您的算法。
正如 Hans Passant 所指出的,内存泄漏是因为您在处理完文件后从未释放内存。 C++ 不进行垃圾回收。
关于c++ - 无法分析超过一定大小的 PE 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42068937/