使用SetDllDirectory可能存在安全漏洞?

时间:2009-01-28 21:49:58

标签: security dll

我有一个DLL在其DllMain()函数中调用SetDllDirectory()。 SetDllDirectory()的参数是DLL所在的目录,由GetModuleFileName()函数返回。这样做的结果是,如果将DLL放置为c:/foo/bar.dll,则加载bar.dll会将c:/foo添加到调用进程的DLL搜索路径中。

我的问题是:这会打开任何形式的安全漏洞吗?在一个必须由加载库的进程显式调用的函数中执行SetDllDirectory()调用会更安全吗?

1 个答案:

答案 0 :(得分:1)

不是。其实不是新的。由于应用程序路径是Windows查找dll的第一个地方,因此有人可能会在此文件夹中放置恶意dll。所以没有你的SetDllDirectory()调用会有一个安全漏洞。