From 88568b374d26500f610262a36a32694e31ab67d1 Mon Sep 17 00:00:00 2001 From: mkrsym1 Date: Thu, 8 Jun 2023 15:27:51 +0300 Subject: [PATCH] Move UnityPlayer loading into the game payload DLL --- game_payload/src/main.c | 3 +++ injector/launcher_payload/src/payload.asm | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/game_payload/src/main.c b/game_payload/src/main.c index 1e7095e..3e9c759 100644 --- a/game_payload/src/main.c +++ b/game_payload/src/main.c @@ -29,5 +29,8 @@ BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved) { // ...magic tp6_setup_patcher(&game, instance, baseModule); + // Load the UnityPlayer module + HMODULE unityModule = LoadLibraryA("UnityPlayer.dll"); + return TRUE; } diff --git a/injector/launcher_payload/src/payload.asm b/injector/launcher_payload/src/payload.asm index 10048bc..7ed0f1d 100644 --- a/injector/launcher_payload/src/payload.asm +++ b/injector/launcher_payload/src/payload.asm @@ -18,7 +18,6 @@ main: ; Replacement entry point lea rdx, [rel s_LoadLibraryA] mov rax, [rbp - 10h] ; *GetProcAddress call rax ; rax = *LoadLibraryA - mov [rbp - 18h], rax lea rcx, [rel dllPath] call rax ; LoadLibraryA(dllPath) @@ -28,6 +27,7 @@ main: ; Replacement entry point lea rdx, [rel s_GetModuleHandleA] mov rax, [rbp - 10h] ; *GetProcAddress call rax ; rax = *GetModuleHandle + mov [rbp - 18h], rax mov rcx, 0 call rax ; rax = .exe base address @@ -43,7 +43,7 @@ main: ; Replacement entry point lea rcx, [rel s_UnityPlayer.dll] - mov rax, [rbp - 18h] ; *LoadLibraryA + mov rax, [rbp - 18h] ; *GetModuleHandleA call rax ; rax = UnityPlayer.dll mov rcx, rax