如果我做
LoadLibrary("MyTest.dll")
Windows将从
"C:\TestFolder\Test\MyTest.dll"
找到并加载它,因为"C:\TestFolder\Test\"
在%PATH%
文件夹中。如何模拟相同的功能?我需要通过将
C:\TestFolder\Test\MyTest.dll
作为参数传递给函数来定位C:\TestFolder\Test\
(%PATH%
在MyTest.dll
中)。有没有这样的API?或功能?附言我无法先执行LoadLibrary,然后再执行GetModuleHandle并找到Path,有时此DLL可能是恶意DLL,而我无法加载它。所以我需要找到PATH而不必加载它。
最佳答案
要加载DLL而不在其中运行任何恶意代码,请使用带有LoadLibraryEx
和DONT_RESOLVE_DLL_REFERENCES
标志的LOAD_LIBRARY_AS_DATAFILE
。
然后,您可以使用GetModuleFileName
。
您还应该阅读所有其他标志,这些标志使您可以执行Windows能够执行的所有各种搜索。
关于c++ - 通过提供DLLName查找DLL路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61541909/