bb107 / MemoryModulePP

MemoryModule which compatible with Win32 API and support exception handling
MIT License
342 stars 93 forks source link

不能识别通过loadlibrary加载的dll,存在重复加载 #45

Open guohaoli opened 2 months ago

guohaoli commented 2 months ago

现象描述: 我先用loadlibrary加载一个dll,然后再用LdrLoadDllMemoryExW加载同样的dll,LdrLoadDllMemoryExW没有办法识别已经加载过的loadlibrary,无法对dll引用进行自增,而是重复执行dll加载代码。

无法识别的代码段: 函数位置LdrLoadDllMemoryExW->MapMemoryModuleHandle 具体代码:pModule->Signature != MEMORY_MODULE_SIGNATURE和pModule->codeBase != (LPBYTE)hModule都为true,导致返回结果为nullptr

bb107 commented 2 months ago

你好,使用LoadLibrary加载的DLL不包含MEMORYMODULE结构,因此不能被识别。如果需要验证是否已被加载,请在加载前调用GetModuleHandle函数。