驱动中获取当前进程名的方法

本文阅读 1 分钟
首页 驱动开发 正文

在驱动程序中可以通过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;
    }
本文来自投稿,不代表本站立场,如若转载,请注明出处:
驱动中实现兼容x86/x64的GetProcAddress
« 上一篇 01-26
C/C++数据长度转换
下一篇 » 04-03