2009-01-28 110 views
1

我有一個DLL在DllMain()函數中調用SetDllDirectory()。 SetDllDirectory()的參數是DLL所在的目錄,由GetModuleFileName()函數返回。這樣做的效果是,如果將DLL放置爲c:/foo/bar.dll,則加載bar.dll會將c:/foo添加到調用進程的DLL搜索路徑中。使用SetDllDirectory的可能的安全漏洞?

我的問題是:這是否會打開任何形式的安全漏洞?在函數中執行SetDllDirectory()調用會更安全嗎?必須由加載庫的進程顯式調用SetDllDirectory()調用?

回答

1

不是。實際上並不是一個新的。由於應用程序路徑是第一個地方Windows尋找DLL可能有人可以放置一個惡意的DLL在這個文件夾。所以沒有你的SetDllDirectory()調用有一個安全漏洞。