如何在过滤器驱动程序中读取当前进程的PE头
How read PE header of current process in filter driver
我调用PsGetCurrentProcess
以获得PEPROCESS
结构,我如何在内核模式下读取我的进程的PE头,类似于在用户模式下这样做的代码?我的目标是从PE头获取版本信息。
我建议在创建流程时获取此信息。您可以使用PsSetCreateProcessNotifyRoutine(Ex)
来在创建新进程时收到通知。当PE文件(包括进程的主可执行文件)映射到虚拟地址空间时,PsSetLoadImageNotifyRoutine
会通知您。
当进程完全初始化并运行时,从进程内存中读取版本信息是一个坏主意。进程完全控制它的PE文件映射,所以它可以伪造版本信息。更重要的是,您只能以低IRQL (PASSIVE_LEVEL)访问用户模式内存。也可以在APC_LEVEL/DISPATCH_LEVEL调用Minifilter回调
相关文章:
- boost::进程间消息队列引发错误
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 是否可以通过C++扩展强制多个python进程共享同一内存
- IPC使用多个管道和分支进程来运行Python程序
- 异常属于C++中的线程还是进程
- WMI检测进程创建事件-c++
- c++多进程编写一个唯一的文件
- 如何在C++中将函数发送到另一个进程
- 在Qt Creator中,如何在连接到正在运行的进程后查看控制台输出
- 终止 QProcess 不会终止子进程
- 将返回值从 exe 传递到 bat,并将其传递给 C# 中的进程
- COM :是否可以查看是否存在对我的某个 COM 对象的进程外引用?我可以释放它吗?
- Windows 进程间同步类似事件?
- 在挂钩启动新线程时解除挂钩进程
- pclose() 不会给我进程退出代码
- 运行代码时,c++ 会终止进程
- 可以读入进程内存的最大块大小是多少?
- 枚举进程模块在有效句柄上返回无效句柄
- 在本机进程的.net PE内存负载中
- 如何在过滤器驱动程序中读取当前进程的PE头