Skip to content

Crash!!! #25

Open
Open

Description

@warsark

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");
}

b.dll is a normal dll

test.exe
void main()
{
hmodule hmod=loadlibrary(a.dll)
call hmod.loaddll();
call freelibrary(hmod);
//now everything is ok!

while(true)
{
sleep(1000);
}
}

a few moment ,the test.exe will crash!!!

Activity

  1. bb107 commented on Mar 27, 2023

    @bb107
    Owner

    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.

  2. warsark commented on Mar 27, 2023

    @warsark
    Author

    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

  3. bb107 commented on Mar 28, 2023

    @bb107
    Owner

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions