【问题标题】:How to restrict icon handler to be accessed by a particular process?如何限制特定进程访问图标处理程序?
【发布时间】:2013-08-06 08:30:39
【问题描述】:

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

【问题讨论】:

  • 你为什么要这样做?
  • 因为我的拱形缺陷。我无法管理来自 explorer.exe 以外进程的线程对我的文件的读/写

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


【解决方案1】:

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

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

如果您将此设想为某种安全措施,那么它不会很好地工作。坚定的攻击者会编写自己的 shell 扩展,加载到 Explorer,然后从那里访问您的处理程序。

【讨论】:

  • 谢谢!!有用。我也在这里找到了同样的建议 codeproject.com/Articles/8027/Restricting-DLL-loading 。我想这样做是因为我只能从 explorer.exe 的线程管理自定义文件的读/写。来自标准打开文件对话框等其他进程的线程正在创建死锁。是的,我将无法在这些对话框中看到正确的图标。
  • 我认为纠正死锁和其他阻止在 Explorer 之外使用的缺陷可能会更有成效。
  • 特别是因为 explorer.exe 也可能是多个进程。
  • 多个 explorer.exe 对我来说不是问题。
猜你喜欢
  • 1970-01-01
  • 2020-05-29
  • 2011-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多