Locate DLL path by giving a DLLName

2019-04-11 19:22发布

If I do

LoadLibrary("MyTest.dll")

Windows will locate and load it from "C:\TestFolder\Test\MyTest.dll", because "C:\TestFolder\Test\" is in %PATH% folder.

How can I emulate same function? I need to locate C:\TestFolder\Test\MyTest.dll (C:\TestFolder\Test\ is in %PATH%) by passing MyTest.dll as an argument to a function. Is there such an API? or a function?

P.S. I can't do LoadLibrary and then GetModuleHandle and finding Path, sometimes this DLL could be malicious DLL and I can't load it. So I need to find PATH without having to load it.

标签: c++ c winapi dll
1条回答
看我几分像从前
2楼-- · 2019-04-11 19:53

To load the DLL without running any malicious code inside, use LoadLibraryEx with the DONT_RESOLVE_DLL_REFERENCES and LOAD_LIBRARY_AS_DATAFILE flags.

Then you can use GetModuleFileName.

You should also read about all the other flags, which allow you to perform all the various searches Windows is capable of.

查看更多
登录 后发表回答