add: unloading

This commit is contained in:
2024-04-13 11:55:51 +02:00
parent 8f161be085
commit 9e8909a97f
5 changed files with 20 additions and 0 deletions

View File

@@ -15,6 +15,7 @@ BOOL APIENTRY DllMain( HMODULE hModule,
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
myhModule = hModule;
init_il2cpp();
CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) Run, NULL, 0, NULL);
break;

View File

@@ -36,6 +36,11 @@ void il2cppi_new_console() {
freopen_s((FILE**) stdout, "CONOUT$", "w", stdout);
}
void il2cpp_close_console() {
fclose((FILE *)stdout);
FreeConsole();
}
#if _MSC_VER >= 1920
// Helper function to convert Il2CppString to std::string
std::string il2cppi_to_string(Il2CppString* str) {

View File

@@ -18,6 +18,8 @@ void il2cppi_log_write(std::string text);
// Helper function to open a new console window and redirect stdout there
void il2cppi_new_console();
void il2cpp_close_console();
#if _MSC_VER >= 1920
// Helper function to convert Il2CppString to std::string
std::string il2cppi_to_string(Il2CppString* str);

View File

@@ -18,6 +18,13 @@
// Set the name of your log file here
extern const LPCWSTR LOG_FILE = L"DevourClient.txt";
HMODULE myhModule = NULL;
DWORD __stdcall EjectThread(LPVOID lpParameter) {
Sleep(100);
il2cpp_close_console();
FreeLibraryAndExitThread(myhModule, 0); //Freeing the module, that's why we needed the myhModule variable
}
// Custom injected code entry point
void Run()
{
@@ -38,6 +45,9 @@ void Run()
}
if (GetAsyncKeyState(VK_END) & 0x8000)
break;
std::this_thread::sleep_for(std::chrono::milliseconds(50));
}
CreateThread(0, 0, EjectThread, 0, 0, 0);
}

View File

@@ -3,5 +3,7 @@
#pragma once
extern HMODULE myhModule;
// Custom injected code entry point
void Run();