首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Minifilter:使用通知阻止应用程序

Minifilter:使用通知阻止应用程序
EN

Stack Overflow用户
提问于 2014-09-24 18:35:47
回答 1查看 988关注 0票数 1

我正在编写一个小过滤器来阻止应用程序的执行。微过滤器将在IRP_MJ_CREATE上请求对用户模式应用程序的文件扫描。用户模式应用程序将扫描是否允许执行PE文件(.exe/.dll/etc)。

目前,当用户模式应用程序拒绝时,微筛选器将发出拒绝访问的状态,并取消文件打开。(是,使用FltCancelFileOpen)

发出拒绝访问返回值时的问题是,从用户的角度来看,他们将从系统获得如下消息框:

另一个例子是,当阻止加载特定的dll时,会出现另一个消息框:

我想要完成的是仍然拒绝打开,但抑制消息框,并有一个我自己的通知,这是一个用户友好的错误消息,表明应用程序被阻止。示例类似于Windows8的smartscreen功能,它将在运行被阻止的exe时通知用户,而不会有任何消息框显示拒绝访问或类似的消息。

我该怎么做呢?

EN

回答 1

Stack Overflow用户

发布于 2014-09-24 22:20:13

让我们以DLL为例。之所以会出现这个错误,是因为Windows中有等同于

代码语言:javascript
复制
if (!LoadLibrary(szDllName))
{
     MessageBox("Application Error", ...);
}
else
{
   DllMain = GetProcAddress("DllMain");
   DllMain(DLL_PROCESS_ATTACH);

因此,如果您不希望使用代码的第一个分支,则应该允许加载DLL。没有第三种选择。

Windows8的例子具有误导性。如果您是Microsoft,当然可以添加第三个选项。

转念一想,你是不是用FltCancelFileOpen取消了操作?如果不是,那你是怎么做到的?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26014740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档