我有一个DLL在其DllMain()函数中调用SetDllDirectory()。 SetDllDirectory()的参数是DLL所在的目录,由GetModuleFileName()函数返回。这样做的结果是,如果将DLL放置为c:/foo/bar.dll
,则加载bar.dll
会将c:/foo
添加到调用进程的DLL搜索路径中。
我的问题是:这会打开任何形式的安全漏洞吗?在一个必须由加载库的进程显式调用的函数中执行SetDllDirectory()调用会更安全吗?
答案 0 :(得分:1)
不是。其实不是新的。由于应用程序路径是Windows查找dll的第一个地方,因此有人可能会在此文件夹中放置恶意dll。所以没有你的SetDllDirectory()调用会有一个安全漏洞。