如何读取过滤器驱动程序

时间:2016-09-09 06:08:11

标签: c++ c process driver filter-driver

我调用PsGetCurrentProcess来获取PEPROCESS结构,如何在内核模式下读取我的进程的PE头,类似this代码在用户模式下执行此操作? 我的目标是从PE头获取版本信息。

1 个答案:

答案 0 :(得分:1)

我建议在创建流程时获取此信息。您可以使用PsSetCreateProcessNotifyRoutine(Ex)在创建新进程时收到通知。当PE文件(包括进程'主可执行文件)映射到虚拟地址空间时,PsSetLoadImageNotifyRoutine会通知您。

当进程完全初始化并运行时,从进程的内存中读取版本信息是一个坏主意。该进程可以完全控制其PE文件映射,因此可以伪造版本信息。更重要的是,您只能在低IRQL(PASSIVE_LEVEL)下访问用户模式内存。可以在APC_LEVEL / DISPATCH_LEVEL调用Minifilter回调。

相关问题