c - 从内核驱动程序到达内核 session 空间

标签 c windows kernel driver

我正在编写一个内核驱动程序,它应该读取(在某些情况下还写入)内核 session 空间 (win32k.sys) 中的一些内存地址。我读过另一个主题,例如在 Windbg 中,我应该将上下文更改为随机用户进程以读取内核 session 空间的内存(使用 .process/p)。我怎样才能在内核驱动程序中做到这一点?我应该创建一个与驱动程序通信的用户进程(这是我现在的想法,但我希望有更好的解决方案)还是有更简单的解决方案?

最佳答案

session 空间未映射到系统地址空间(驱动程序共享,如果未附加到任何进程)。这就是为什么您在访问 win32k 时出现蓝屏死机的原因。

您需要通过 KeStackAttachProcess 附加到 EPROCESS 才能执行此操作。您可以使用 ZwQueryInformationProcess(ProcessSessionInformation) 函数获取 session ID。

关于c - 从内核驱动程序到达内核 session 空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22557832/

相关文章:

linux - 交叉编译的 ARM 内核而不是 ARMHF

c - 在 C 中运行客户端和服务器套接字连接 - 使用线程

c - 我的链接列表中的分配不起作用

c - 系统函数和堆栈

windows - Jenkins Windows slave 运行失败!框架构建

python - 推荐用于本地网络应用程序的 python 库/框架?

c++ - 使用 GCC,我可以在每个函数的基础上禁用 -Wframe-larger-than 吗?

windows - Azure VPN 客户端未安装 P2S 连接配置文件

c - 调用fork()然后变成调用sys_fork()的过程是怎样的?

c - 从 Linux 内核运行外部二进制文件