如何限制特定进程访问图标处理程序?

时间:2013-08-05 15:05:03

标签: com explorer windows-shell shell-extensions icon-handler

我的自定义文件有一个图标处理程序。我如何限制图标处理程序功能,以便只能由explorer.exe线程调用?

1 个答案:

答案 0 :(得分:2)

好吧,您可以使用GetModuleFileName(NULL)找出您的处理程序加载到哪个EXE。您可以在COM方法中执行此操作(如果您认为在错误的过程中,则返回E_FAIL),或者在DllMain中返回,以便您的处理程序甚至无法加载。

然而,目前尚不清楚为什么要这样做。例如,任何应用程序中的标准“打开文件”对话框都使用图标处理程序;你不希望你的图标出现在那里吗?

如果您将此视为某种安全措施,那么它将无法正常运行。确定的攻击者会编写自己的shell扩展,加载到Explorer中,并从那里访问您的处理程序。