无法分析超过一定大小的 PE 文件
Can't analyse PE files more than certain size
目前,我的代码能够获取小于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);
您将错误代码解码为 "Invalid access to memory location" 而您没有检查 malloc 的 return 值,即使您需要循环读取 ReadFile 以读取整个内容.
你 运行 内存不足。你当然需要重新设计你的算法。
正如 Hans Passant 指出的那样,您存在内存泄漏,因为您在使用完文件后从未释放该文件的内存。 C++ 不是垃圾收集器。
目前,我的代码能够获取小于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);
您将错误代码解码为 "Invalid access to memory location" 而您没有检查 malloc 的 return 值,即使您需要循环读取 ReadFile 以读取整个内容.
你 运行 内存不足。你当然需要重新设计你的算法。
正如 Hans Passant 指出的那样,您存在内存泄漏,因为您在使用完文件后从未释放该文件的内存。 C++ 不是垃圾收集器。