2013-08-05 72 views
0

我有我的自定義文件的圖標處理程序。如何限制圖標處理程序的功能,以便它可以被explorer.exe線程調用?如何限制圖標處理程序被特定進程訪問?

+0

你爲什麼要這樣做? –

+0

由於我的拱缺陷。我無法管理從explorer.exe以外的進程讀取/寫入我的文件 –

回答

2

那麼,你可以使用GetModuleFileName(NULL)找出你的處理程序加載到哪個EXE。您可以在COM方法中執行此操作(如果您認爲進程錯誤,則返回E_FAIL),或者在DllMain中執行此操作,以使處理程序無法加載。

但是,目前尚不清楚爲什麼你會這麼做。例如,圖標處理程序由任何應用程序中的標準「打開文件」對話框使用;你不想讓你的偶像出現在那裏嗎?

如果你認爲這是一種安全措施,那麼它將不會很好地工作。確定的攻擊者會編寫自己的外殼擴展,加載到資源管理器中,然後從那裏訪問您的處理程序。

+0

謝謝!有用。我也在這裏找到了同樣的建議http://www.codeproject.com/Articles/8027/Restricting-DLL-loading。我想這樣做是因爲我可以管理從只來自explorer.exe的線程讀取/寫入自定義文件。來自其他進程(如標準「打開文件」對話框)的線程正在創建死鎖。是的,我將無法在這些對話框中看到正確的圖標。 –

+2

我認爲這可能會更有效地糾正死鎖和其他防止在Explorer外使用的缺陷。 – Medinoc

+0

特別是因爲explorer.exe也可能是多個進程。 –

相關問題