当我尝试构建我的项目时,出现错误:
a value type "PRTL_PROCESS_MODULE_INFORMATION*" cannot be used to initialize an entity of type "PRTL_PROCESS_MODULE_INFORMATION"
。如果可能的话,我很好奇这是我的代码:
PVOID get_ststem_module_base(const char* module_name)
{
ULONG bytes = 0;
NTSTATUS status = ZwQuerySystemInformation(SystemModuleInformation, NULL, bytes, &bytes);
if (!bytes)
return NULL;
PRTL_PROCESS_MODULES modules = (PRTL_PROCESS_MODULES)ExAllocatePoolWithTag(NonPagedPool, bytes, 0x4e554c4c);
status = ZwQuerySystemInformation(SystemModuleInformation, modules, bytes, &bytes);
if (!NT_SUCCESS(status))
return NULL;
PRTL_PROCESS_MODULE_INFORMATION module = modules->Modules;
PVOID module_base = 0, module_size = 0;
for (ULONG i = 0; i < modules->NumberOfModules; i++)
{
if (strcmp((char*)module[i].FullPathName, module_name) == 0)
{
module_base = module[i].ImageBase;
module_size = (PVOID)module[i].ImageSize;
break;
}
}
if (modules)
ExFreePoolWithTag(modules, NULL);
if (module_base <= NULL)
return NULL;
return module_base;
}
我已经尝试更改模块的名称,看看我是否可以让它变得像任何东西一样,但没有成功,我被这个难住了。