Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在没有API挂钩或筛选器驱动程序的情况下拦截文件\文件夹I\O 我需要编写一个程序来显示密码窗口,当用户试图访问C++中的一个文件或文件夹时,对于Win XP和Win 7(对于32位和64位)都是如此。 但困难的是,我不能使用IAT\EAT或内联挂接来完成这项任务,因为这项任务需要使用微软支持的方法_C++_Windows_Visual C++_Hook_Minifilter - Fatal编程技术网

在没有API挂钩或筛选器驱动程序的情况下拦截文件\文件夹I\O 我需要编写一个程序来显示密码窗口,当用户试图访问C++中的一个文件或文件夹时,对于Win XP和Win 7(对于32位和64位)都是如此。 但困难的是,我不能使用IAT\EAT或内联挂接来完成这项任务,因为这项任务需要使用微软支持的方法

在没有API挂钩或筛选器驱动程序的情况下拦截文件\文件夹I\O 我需要编写一个程序来显示密码窗口,当用户试图访问C++中的一个文件或文件夹时,对于Win XP和Win 7(对于32位和64位)都是如此。 但困难的是,我不能使用IAT\EAT或内联挂接来完成这项任务,因为这项任务需要使用微软支持的方法,c++,windows,visual-c++,hook,minifilter,C++,Windows,Visual C++,Hook,Minifilter,在谷歌搜索时,许多论坛也提到,这可以通过使用文件系统过滤器驱动程序来实现,但我想知道如何从迷你驱动程序中显示密码对话框 我认为shell扩展可以完成这项工作,但msdn文档显示,shell扩展不能用于拦截I/O调用 请给出建议,提前感谢。您确实需要内核驱动程序来实现这一点。只有通过Shell访问文件(例如,在Windows资源管理器中单击)时,才会激活Shell挂钩和扩展名,如果其他程序直接访问文件,则不会触发Shell挂钩和扩展名 在进行access反病毒工作时,我遇到了类似的挑战 但正如@s

在谷歌搜索时,许多论坛也提到,这可以通过使用文件系统过滤器驱动程序来实现,但我想知道如何从迷你驱动程序中显示密码对话框

我认为shell扩展可以完成这项工作,但msdn文档显示,shell扩展不能用于拦截I/O调用


请给出建议,提前感谢。

您确实需要内核驱动程序来实现这一点。只有通过Shell访问文件(例如,在Windows资源管理器中单击)时,才会激活Shell挂钩和扩展名,如果其他程序直接访问文件,则不会触发Shell挂钩和扩展名

在进行access反病毒工作时,我遇到了类似的挑战

但正如@selbie所说,驱动程序代码本身无法处理任何交互提示——它必须与用户模式代码通信才能实现这一点。可以是独立的应用程序,也可以是自动加载到每个进程中的DLL。在我的例子中,如果需要用户响应,我们让驱动程序和用户模式应用程序通过管道进行通信-驱动程序将消息通过管道传输到用户模式应用程序(如果它处于活动状态),然后等待响应。该应用程序发出了一个提示,并通过管道将响应传回给司机


还讨论了文件I/O挂接的问题。

是什么阻止用户启动DOS框并仅使用控制台命令来获取所需内容?如果您最终编写了一个驱动程序组件,那么驱动程序本身可能不会显示任何UI。但它可以与用户模式应用程序(ala任务托盘应用程序)进行通信,以启动一个用户界面,从中收集信誉。