DLL劫持之路径劫持

2019-08-26  本文已影响0人  追逐着初衷

环境vs2008

DLL搜索路径

https://docs.microsoft.com/zh-cn/windows/win32/dlls/dynamic-link-library-search-order

LoadLibraryEx(_T("Saya.dll"), NULL, LOAD_WITH_ALTERED_SEARCH_PATH);,则加载顺序(一般标准的DLL路径加载)为:

1.包含可执行文件的目录。

2.如果通过SetDllDirectory设置了路径。则搜索该路径,并不再搜索第6步。(XP后支持,比如VC6无该接口)

3.Windows系统目录,即C:\WINDOWS\System32

4.16位系统目录,即C:\WINDOWS\System

5.Windows目录,即C:\WINDOWS

6.进程当前目录。(非安全方式加载时则为第2个加载)

7.PATH环境变量中所列目录。

第一个DLL 第二个DLL

先将dll1放到C:\\windows\\路径下

windows_path

然后将dll2放到同路径底下

同路径

总结

通过相对路径查找DLL是有隐患的,很可能被白利用起来。所以我们写加载DLL的代码时,尽量用绝对路径。

上一篇下一篇

猜你喜欢

热点阅读