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) switch (ul_reason_for_call)
{ {
case DLL_PROCESS_ATTACH: case DLL_PROCESS_ATTACH:
myhModule = hModule;
init_il2cpp(); init_il2cpp();
CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) Run, NULL, 0, NULL); CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) Run, NULL, 0, NULL);
break; break;

View File

@@ -36,6 +36,11 @@ void il2cppi_new_console() {
freopen_s((FILE**) stdout, "CONOUT$", "w", stdout); freopen_s((FILE**) stdout, "CONOUT$", "w", stdout);
} }
void il2cpp_close_console() {
fclose((FILE *)stdout);
FreeConsole();
}
#if _MSC_VER >= 1920 #if _MSC_VER >= 1920
// Helper function to convert Il2CppString to std::string // Helper function to convert Il2CppString to std::string
std::string il2cppi_to_string(Il2CppString* str) { 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 // Helper function to open a new console window and redirect stdout there
void il2cppi_new_console(); void il2cppi_new_console();
void il2cpp_close_console();
#if _MSC_VER >= 1920 #if _MSC_VER >= 1920
// Helper function to convert Il2CppString to std::string // Helper function to convert Il2CppString to std::string
std::string il2cppi_to_string(Il2CppString* str); std::string il2cppi_to_string(Il2CppString* str);

View File

@@ -18,6 +18,13 @@
// Set the name of your log file here // Set the name of your log file here
extern const LPCWSTR LOG_FILE = L"DevourClient.txt"; 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 // Custom injected code entry point
void Run() void Run()
{ {
@@ -38,6 +45,9 @@ void Run()
} }
if (GetAsyncKeyState(VK_END) & 0x8000)
break;
std::this_thread::sleep_for(std::chrono::milliseconds(50)); std::this_thread::sleep_for(std::chrono::milliseconds(50));
} }
CreateThread(0, 0, EjectThread, 0, 0, 0);
} }

View File

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