在驱动程序中可以通过PsGetCurrentProcess函数来获取当前调用驱动的进程的EPROCESS结构的地址,驱动程序的加载函数DriverEntry是运行在System进程中的,通过PsGetCurrentProcess可以获取System进程的内核EPROCESS结构的地址,然后从该地址开始寻找"System"字符串,找到EPROCESS的进程名存放的偏移处,得到进程名在EPROCESS结构的偏移后就可以直接在该偏移处获取当前进程名
ULONG GetProcessNameOffset()
{
ULONG Offset;
PEPROCESS CurrentProcess = PsGetCurrentProcess();
for (int i = 0; i < 4096; i++)
{
if (!strncmp("System", (PCHAR)CurrentProcess + i, strlen("System")))
{
Offset = i;
return Offset;
}
}
return 0;
}
本文来自投稿,不代表本站立场,如若转载,请注明出处: