进程监控 CreateProcessNotifyRoutineEx

2024-03-01

我正在开发一个用于监视进程创建的驱动程序,我编写了一个简单的代码来完成它。我用PsSetCreateProcessNotifyRoutineEx。但这行不通!我完全遵循微软的帮助在这个链接上 http://msdn.microsoft.com/en-us/library/windows/hardware/ff559953%28v=vs.85%29.aspx

#include <ntddk.h>

NTSTATUS DriverEntry(
    IN PDRIVER_OBJECT DriverObject,  
    IN PUNICODE_STRING RegistryPath
    );

VOID UnloadRoutine(
    IN PDRIVER_OBJECT DriverObject
    );

VOID CreateProcessNotifyEx(
    __inout   PEPROCESS Process,
    __in      HANDLE ProcessId,
    __in_opt  PPS_CREATE_NOTIFY_INFO CreateInfo
);



VOID CreateProcessNotifyEx(
    __inout   PEPROCESS Process,
    __in      HANDLE ProcessId,
    __in_opt  PPS_CREATE_NOTIFY_INFO CreateInfo

)
{
    if (CreateInfo)
    {
        if(CreateInfo->FileOpenNameAvailable==TRUE)
        {
            DbgPrintEx( 
                DPFLTR_IHVDRIVER_ID,  
                DPFLTR_INFO_LEVEL,
                "PID : 0x%X (%d)  ImageName :%wZ CmdLine : %wZ \n",
                ProcessId,ProcessId,
                CreateInfo->ImageFileName,
                CreateInfo->CommandLine
                );
        }
    }

}


VOID UnloadRoutine(IN PDRIVER_OBJECT DriverObject)
{
    PsSetCreateProcessNotifyRoutineEx((PCREATE_PROCESS_NOTIFY_ROUTINE_EX)  CreateProcessNotifyEx, TRUE);
    DbgPrintEx( DPFLTR_IHVDRIVER_ID,  DPFLTR_INFO_LEVEL,"Unloaded\n");
}

NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject,  IN PUNICODE_STRING RegistryPath)
{

    NTSTATUS status = PsSetCreateProcessNotifyRoutineEx((PCREATE_PROCESS_NOTIFY_ROUTINE_EX)CreateProcessNotifyEx, FALSE);
  if(!NT_SUCCESS(status))
  {
     DbgPrintEx( DPFLTR_IHVDRIVER_ID,  DPFLTR_ERROR_LEVEL,"Faild to PsSetCreateProcessNotifyRoutineEx .status : 0x%X \n",status);
  }
    DriverObject->DriverUnload = UnloadRoutine;
     DbgPrintEx( DPFLTR_IHVDRIVER_ID,  DPFLTR_INFO_LEVEL,"Load\n");

    return STATUS_SUCCESS; 

}

This drive load and run correctly but when run a program(new process), Doesn't happen any thing and can't register PsSetCreateProcessNotifyRoutineEx and i got 0xC0000022 Error (Access Denied). enter image description here

任何想法 ?


我总是必须找到我的答案;)

为了解决这个问题只需要添加这个值LINKER_FLAGS=/integritycheck到源文件!

Before :

TARGETNAME=ProcView
TARGETPATH=.
TARGETTYPE=DRIVER

SOURCES=ProcView.c

Now :

TARGETNAME=ProcView
TARGETPATH=.
TARGETTYPE=DRIVER
LINKER_FLAGS=/integritycheck
SOURCES=ProcView.c
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

进程监控 CreateProcessNotifyRoutineEx 的相关文章

  • 同时从多个应用程序访问网络摄像头

    问题背景 有两个不同的 Windows 应用程序正在尝试同时访问计算机上的网络摄像头 目前 只有一个应用程序能够访问它 我希望能够允许两个应用程序同时访问网络摄像头 我的问题的一个常见示例是 Skype 和 yahoo Messenger
  • Java中子进程的重定向I/O(为什么ProcessBuilder.inheritIO()不起作用?)

    我正在按以下方式启动一个流程 try final Process mvnProcess new ProcessBuilder cmd c mvn version directory new File System getProperty u
  • 如何在Tomcat 7.0.47启动时注册oracle jdbc驱动程序?

    我将ojdbc6 jar复制到tomcat安装文件夹中的lib文件夹中 当我部署在 JDBC 连接中使用 Oracle 驱动程序的 Web 应用程序时 服务器说找不到驱动程序类 我被迫手动执行 DriverManager registerD
  • 如何在 C# 中异步读取结束进程输出?

    我在 C 中异步读取一个进程的输出时遇到问题 我在这个网站上发现了一些其他类似的问题 但它们并没有真正帮助我 这是我所做的 制定新流程 设置启动信息 文件名 参数 CreateNoWindow true UseShellExecute fa
  • java中如何销毁进程

    我写了下面的代码 要从 Java 应用程序运行 bat 文件 我使用 process exec 但蝙蝠有时可能会挂起 所以我需要为此过程设置一个超时 我启动一个新线程并在线程中新建一个进程 我在线程中设置超时 并在超时时杀死线程 但我发现超
  • 无法使用 process.ErrorDataReceived c# 获取进程错误输出

    我已经建立了Form我使用了一段时间的应用程序 现在我想捕捉StandardError我的流程及其standartOutput 我查看了答案SO and MSDN https msdn microsoft com en us library
  • 在 Mac 上查找(并杀死)锁定端口 3000 的进程 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何找到 并终止 侦听 使用我的 TCP 端口的进程 我在 macOS 上 有时 在崩溃或出现一些错误后 我的 Rails 应用程序会锁定
  • 以字符集安全的方式获取 Windows 上的进程列表

    这个帖子 https stackoverflow com questions 54686 how to get a list of current open windows process with java给出了一个在 Windows 下
  • c 中的分叉和管道过程

    所以我有一个项目要做 但我完全被难住了 我花了十个小时却一无所获 我并不是特别想要答案的代码 但是一些伪代码和正确方向的良好提示将有帮助 它分叉多个进程 k 命令行参数 通过管道连接 每个进程都连接到下一个进程 最后一个进程连接到第一个进程
  • Docker容器CPU使用率监控

    根据 docker 的文档 我们可以通过以下方式获取 docker 容器的 CPU 使用率码头工人统计命令 CPU 列将给出容器正在使用的主机 CPU 的百分比 假设我限制容器使用 50 的主机单个 CPU 我可以通过 cpus 0 5 选
  • C++ 进程管理 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有一个众所周知的 可移植的 好的 C 进程管理库 我发现了一个很有前途的图书馆叫做升压过程 htt
  • C# 在 Process.Kill() 期间仅完成了 ReadProcessMemory 或 WriteProcessMemory 请求的一部分

    我一直在广泛研究这个问题 但似乎找不到答案 我知道Only part of a ReadProcessMemory or WriteProcessMemory request was completed当 32 位进程尝试访问 64 位进程
  • 获取 Prometheus 中两个自定义时间戳之间的增量

    我有一个名为的普罗米修斯指标device number 我想要的是显示现在与一天 一周 一个月等之前的价值差异 这意味着减去具有两个不同时间戳的两个值 环顾四周 我没有找到任何关于如何执行此操作的有用文档 我想做但不起作用的是 sum de
  • Alsa 带有来自调制解调器的 PCM 接口

    我有一个基于 imx28 CPU 的定制板 CPU 的串行端口连接到调制解调器的 PCM 输出 我必须为调制解调器的 PCM 接口开发一个驱动程序 使其成为 ALSA SoC 的一部分 您能指出内核树 中与我的设置重新组合的一些驱动程序吗
  • Inotify linux 监视子目录

    是否可以以这种模式监视目录 storage data usernames Download gt storage data Download 我需要监视每个用户的下载文件夹中是否进行了更改 也许我需要创建所有路径的列表 将其放入数组中 并在
  • 终结器线程的范围是什么 - 每个应用程序域或每个进程?

    根据我的所有阅读 应该有一个 GC 线程来调用所有终结器 现在的问题是这个 一个 线程的范围是什么 每个进程或每个应用程序域 因为域的整体目的是在一个进程空间中分离并创建 独立 的不同应用程序 I read here http dn cod
  • UNIX系统调用监视器

    如何监控进程的系统调用 Check strace http linux die net man 1 strace 在最简单的情况下 strace 运行指定的命令直到退出 它拦截并记录进程调用的系统调用以及进程接收的信号 每个系统调用的名称
  • Java:执行 /cmd /c start path-with-spaces\program.exe

    我已经阅读了很多有关该问题的内容 但我找到的答案并不完全有效 我尝试运行这段代码 String args cmd c start C Program Files XML Marker xmlmarker exe Runtime rt Run
  • 带重定向标准流的 C# + telnet 进程立即退出

    我正在尝试用 C 做一个 脚本化 telnet 项目 有点类似于Tcl期望 http expect nist gov 我需要为其启动 telnet 进程并重定向 和处理 其 stdin stdout 流 问题是 生成的 telnet 进程在
  • PowerShell 中的 ProcessStartInfo 和进程 - 身份验证错误

    我有使用 ProcessStartInfo 和 Process 调用另一个脚本并返回该脚本的输出的代码 不幸的是 我遇到了错误 并且不确定如何解决这些问题 script1 ps1 abc args startInfo NULL proces

随机推荐

  • 从 SecureRandom 获取确定性值?

    出于基准测试的目的 我希望 SecureRandom 产生确定性的输出 这是否可以通过使用种子 或者算法的规范 来实现 import java security SecureRandom class TestSecureRandom pub
  • 在 Vite 中禁用预加载

    我正在将一个使用 Vue 2 和 Webpack 的大项目迁移到 Vue 3 和 Vite 到目前为止 一切看起来都很棒 但是当我们第一次尝试发布到生产环境时 我们注意到注入了许多模块预加载标签 并且其中的许多文件可能永远不会被使用 问题是
  • python lxml 与 py2exe

    我已经用 dom 生成了一个 XML 我想使用 lxml 来漂亮地打印 xml 这是我用于漂亮打印 xml 的代码 def prettify xml xml str import lxml etree as etree root etree
  • 使用 data.table 将 R 中的许多列乘以特定的其他列?

    我在 R 中有一个很大的 data table 其中有几个带有美元值的列 在另一列中 我有一个通货膨胀调整数字 我试图弄清楚如何用它乘以通货膨胀调整栏来更新我的每个货币栏 假设我有数据 DT lt data table id 1 1000
  • Playframework 2.1 找不到 javax.persistence 和 play.db

    我在使用 Play 框架 版本 2 1 创建实体的 Scala 教程中遇到问题 我正在尝试做 import java util import javax persistence import play db jpa 但是当我编译时 它告诉我
  • 更改 moreNavigationController 图标的颜色

    我已经成功地使用更改了导航栏色调 背景颜色和标签颜色this https stackoverflow com questions 438381 customizing the more menu on a tab bar 但是可以改变图标的
  • 检测 UITableView 部分标题何时捕捉到屏幕顶部

    我想检测何时UITableView节标题捕捉到屏幕顶部 然后修改标题的高度 但我不知道该怎么做 有人可以帮忙吗 我能够通过使用来完成检测哪个标题粘在表视图的顶部didEndDisplayingHeaderView and willDispl
  • 在jHtmlArea中添加表格

    有人知道使 jHtmlArea 支持表格内容并允许用户将表格 单元格 行添加到编辑器框的方法吗 它似乎不是该插件的标准功能 我希望我的用户能够在所见即所得编辑器中创建表 试试这个代码 只需将 editor 更改为您为文本区域设置的 id 即
  • 根据 OnKeyUp 中的文本框过滤列表框项目?

    我有一个包含大量项目的列表框 这些项目都是帐号 因此很难搜索 当用户在文本框中键入内容时 是否可以对项目进行 过滤 以便仅显示与迄今为止输入的内容相匹配的项目 e g List Box 2342 3434 2332 3224 然后用户在文本
  • R - ggplot2 直方图的阴影部分

    所以我有这个数据 dataset rbinom 1000 16 0 5 mean mean dataset sd sd dataset data subset subset dataset dataset gt mean 2 sd data
  • 错误:环境中未设置 XDG_RUNTIME_DIR。 Gtk-警告 **:无法打开显示:

    我曾经用 sublime 打开文本文件 对于只读文件 我曾经这样做 sudo sublime 但现在突然间sudo sublime命令给出以下错误 sublime 3931 Gtk WARNING cannot open display w
  • 无法调用类型缺少调用签名的表达式

    我有苹果和梨 两者都有isDecayed属性 interface Apple color string isDecayed boolean interface Pear weight number isDecayed boolean 这两种
  • 如何在闪亮的仪表板侧边栏中的 menuSubItem 下包含输入小部件?

    如何在闪亮应用程序的侧边栏中的 menuSubItem 下包含一个控件小部件 这是我的试验 library shiny library shinyWidgets library shinydashboard ui lt dashboardP
  • 使用 Ninject 将存储库注入自定义会员资格提供程序

    我正在尝试使用 MVC 3 中的 ninject 将存储库注入到自定义成员资格提供程序中 在 MembershipProvider 中我尝试了以下操作 Inject public ICustomerRepository customerRe
  • 如何更新外键

    我有 2 张桌子 第一个表的设计如下 Table 1 id Doc line sheet pk Autonumber DocNo text lineNo text Sheet No text 字段组合 DocNo lineNo Sheet
  • 如何禁用 Internet Explorer 的同源策略

    Chrome允许我们禁用同源策略 因此我们可以测试跨源请求 我想知道是否有可能在 IE 中做同样的事情 是的 您可以在 Internet 选项 中进行设置 转到 安全 选项卡 对于当前区域 单击 自定义级别 按钮 在下一个窗口中 向下滚动大
  • 更改底层依赖项后 SQL Server 视图显示过时/错误的数据

    我们有一个视图 称为 X 它是由另外 2 个视图 称为 Y 和 Z 调用的基本视图 今天我们对视图 X 进行了更改 之后视图 Y 和 Z 开始带回不正确的数据 当我们在 Management Studio 中运行时SELECT FROM Y
  • Javascript - 检索对象属性路径[重复]

    这个问题在这里已经有答案了 我有以下对象 var obj obj foo obj foo bar I want this 给定 路径 foo bar 作为字符串 我如何检索obj foo bar or obj foo bar 这是一个方法
  • 应用程序首次启动时调用 didReceiveRemoteNotification

    我已经实现了 didReceiveRemoteNotification 方法 它工作并显示一个视图控制器以及传递的通知数据 仅当应用程序已在前台或在后台运行时 此功能才有效 但是 当应用程序未运行并且用户单击通知时 应用程序会启动 但看起来
  • 进程监控 CreateProcessNotifyRoutineEx

    我正在开发一个用于监视进程创建的驱动程序 我编写了一个简单的代码来完成它 我用PsSetCreateProcessNotifyRoutineEx 但这行不通 我完全遵循微软的帮助在这个链接上 http msdn microsoft com