【发布时间】:2012-06-28 18:17:15
【问题描述】:
如果我使用导入库来实现load-time dynamic linking 与Windows 系统dll,将使用哪个目录搜索顺序?
它最终是否等同于LoadLibrary("Iphlpapi.dll")?它会使用完全限定的路径(即LoadLibrary("C:\\windows\\system32\\Iphlpapi.dll")?
一些常用的 dll ("known dlls") 显然得到了特殊处理,但其他系统 dll如 Iphlapi.dll 呢?
它是否容易受到DLL preloading attack 的攻击?
【问题讨论】:
-
据我所知,系统 DLL(例如 kernel32)受到预加载攻击的保护。如果您的问题实际上适用于其他 DLL(例如 Visual C 运行时库),您可能需要选择不同的示例。
-
@HarryJohnston:我说的是 Windows 提供的 dll。但由于我看到“已知 DLL”(其中 kernel32.dll 是其中之一)受到特殊处理,因此我用一个更好的例子修改了这个问题。
-
在没有文档支持的规范答案的情况下,也许你可以试试看?将有问题的 DLL 移出 system32 并进入当前目录,然后查看您的应用程序是否仍在运行。
标签: windows visual-studio dll