为什么LoadLibrary加载不相关的DLL

时间:2015-05-31 13:23:54

标签: dll loadlibrary dll-injection

这是关于DLL注入的。

让我们说P.exe依赖于A.dll,B.dll和C.dll(隐式链接),它们是P.exe的私有模块。

现在我使用带有CREATE_SUSPENDED标志的CreateProcess来启动P.exe,之后我使用CreateRemoteThread在目标进程中调用LoadLibrary来加载Inject.dll,并以相同的方式调用Inject.dll的初始化函数来做实际工作(你可以在DLLMain中做的事情。)

有效。但我发现调用LoadLibrary也会导致A.dll,B.dll和C.dll加载 - 而不仅仅是Inject.dll。从Visual Studio的输出,它们甚至在Inject.dll之前加载,这不是我想要的。你知道,Inject.dll不依赖于任何第三方DLL,实际上它只依赖于kernel32.dll和user32.dll。

在这种情况下,如何仅加载Inject.dll?

0 个答案:

没有答案