Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我的自定义文件有一个图标处理程序。如何限制图标处理程序功能,使其只能由 explorer.exe 线程调用?
好吧,您可以使用GetModuleFileName(NULL)它来找出您的处理程序加载到哪个 EXE 中。您可以在 COM 方法中执行此操作(并返回,例如,E_FAIL如果您认为进程错误),或者DllMain您的处理程序甚至无法加载。
GetModuleFileName(NULL)
E_FAIL
DllMain
但是,尚不清楚您为什么要这样做。例如,任何应用程序中的标准打开文件对话框都使用图标处理程序;你不希望你的图标出现在那里吗?
如果您将此设想为某种安全措施,那么它不会很好地工作。一个坚定的攻击者会编写自己的 shell 扩展,加载到资源管理器中,然后从那里访问您的处理程序。