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的代码时,尽量用绝对路径。