//功能:模块基址,模块大小
VOID GetKernelModuleBase(PULONG64 KrnlBase, PULONG64 KrnlSize)
{
NTSTATUS status;
ULONG size;
char* pDrvName;
PSYSTEM_MODULE_INFORMATION moduleinfo;
PSYSTEM_MODULE_INFORMATION_ENTRY moduleinfoentry;
status = NtQuerySystemInformation(11, &size, NULL, &size);
if (status != 0xc0000004)
{
return;
}
moduleinfo = ExAllocatePool(NonPagedPool, size);
if (moduleinfo == NULL)
{
return;
}
do
{
status = NtQuerySystemInformation(11, moduleinfo, size, &size);
if (!NT_SUCCESS(status))
{
break;
}
moduleinfoentry = moduleinfo->Module;
*KrnlBase = moduleinfoentry->Base;
*KrnlSize = moduleinfoentry->Size;
} while (FALSE);
ExFreePool(moduleinfo);
}
获取自身驱动的模块地址和大小长度
最新推荐文章于 2024-02-27 11:18:22 发布