如果我使用导入库用Windows系统dll实现load-time dynamic linking,将使用哪个目录搜索顺序?
它最终是否等同于LoadLibrary("Iphlpapi.dll")
?它会使用完全合格的路径(即LoadLibrary("C:\\windows\\system32\\Iphlpapi.dll")
?
一些常用的dll("known dlls")显然会受到特殊处理,但是其他系统 dll如Iphlapi.dll呢?
是否容易受到DLL preloading attack?
的攻击答案 0 :(得分:0)
它应该使用完全限定的路径,即(“C:\ windows \ system32 \ kernel.dll”)......
答案 1 :(得分:0)
从您提到的网址中,您使用的是动态链接库机制的STATIC版本!这意味着您的应用程序必须使用DLL的相应LIB构建(请参阅此URL中的说明),并且应用程序将在启动时期望DLL存在。如果缺少此DLL,您的应用程序将无法启动(这就是为什么这种机制称为“使用加载时动态链接” “)。您不能也不必调用LoadLibrary。这将由Loader自动完成(因为您的应用程序和DLL之间的依赖关系)已经放在应用程序的所谓导入地址表(IAT)中