Boring
Boring
Please answer these questions to help me build the test program: 1. Is MMPP linked to a.EXE or b.DLL? 2. When is WorkData initialized? 3. Is WorkData a structure or...
If MMPP is statically linked, how did you create the threadWork thread before initializing MMPP and make it run?
你好,请在加载前调用GetModuleHandle获取一下user32的句柄。如果能获取到,那么通过LoadLibraryMemory加载失败是正常的;如果获取不到并且加载失败请告诉我。如果问题解决了请关闭这个issue。 祝好。
你用的哪个系统版本?
user32确实存在一条循环依赖路径: user32 -> gdi32 -> gdi32full -> user32 我调整了一下加载的逻辑,把解析导入表挪到了插入LdrDataTableEntry之后,并且在我的系统上测试成功了
你需要在调用的时候使用正确的DllBaseName和DllFullName ``` c++ status = LdrLoadDllMemoryExW( &hModule, // ModuleHandle nullptr, // LdrEntry 0, // Flags buffer, // Buffer 0, // Reserved L"user32.dll", // DllBaseName L"C:\\Windows\\System32\\user32.dll" // DllFullName ); ```
I don't think I understand why you use MMPP to load .NET assemblies from memory. On the one hand, C++/CLI supports loading assemblies from memory (as shown in Figure 1);...
Hello, thank you for your explanation. When the export function is called for the first time, the initialization function of mscoreei.dll will be called first, and the assembly file version...
Thank you for your reply. During mscoreei.dll initialization, clr.dll will be loaded and CorDllMainForThunk will be called. This function will remap the assembly we want to execute. Therefore, it is...