You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
test.exe a normal exe with not use mmpp
i comment this line:// const NTSTATUS Initializer = Initialize();
a.dll build with mmpp static libirary,export loaddll func
void loaddll()
{
Initialize();
mmload("b.dll");
}
Hi, thanks for your feedback. Since MMPP hooks ntdll!RtlUserThreadStart and ntdll!LdrShutdownThread, once the Initialize function is called, this module (that is, a.dll) cannot be released.
if comment this line://call freelibrary(hmod);
the test.exe is ok
Add one func do the uninitialize, will be ok
the b.dll loaded,the a.dll call unitialize
then freelibrary,will be ok
If b.dll does not use tls, you only need to comment the statement that initializes MmpTls (Initialize.cpp line 465). Otherwise, when a.dll is released, the program will inevitably crash.
Activity
bb107 commentedon Mar 27, 2023
Hi, thanks for your feedback. Since MMPP hooks ntdll!RtlUserThreadStart and ntdll!LdrShutdownThread, once the Initialize function is called, this module (that is, a.dll) cannot be released.
warsark commentedon Mar 27, 2023
if comment this line://call freelibrary(hmod);
the test.exe is ok
Add one func do the uninitialize, will be ok
the b.dll loaded,the a.dll call unitialize
then freelibrary,will be ok
bb107 commentedon Mar 28, 2023
If b.dll does not use tls, you only need to comment the statement that initializes MmpTls (Initialize.cpp line 465). Otherwise, when a.dll is released, the program will inevitably crash.