@@ -59,14 +59,22 @@ __int64 Hook_SomeLogFunc(__int64 a1, const char** a2)
5959 return Orig_SomeLogFunc (a1, a2);
6060}
6161
62+ static void (__cdecl* Orig_LoadArchive)(void * a1, __int64* a2);
63+ void Hook_LoadArchive (void * a1, __int64* a2)
64+ {
65+ auto an = GetArchiveName (a2);
66+ logger::write (" Loading archive %s" , an);
67+ Orig_LoadArchive (a1, a2);
68+ }
69+
6270// Game.cpp
6371void AddGameFunctions ();
6472
6573DWORD WINAPI OnAttach (LPVOID lpParameter)
6674{
6775 logger::write (" [+] OnAttach" );
6876
69- // AddGameFunctions();
77+ AddGameFunctions ();
7078
7179 hashes = fopen (" hashes.txt" , " w" );
7280
@@ -79,6 +87,7 @@ DWORD WINAPI OnAttach(LPVOID lpParameter)
7987 MH_CreateHook (hook::get_pattern (" 48 83 EC 38 33 C0 48 89 54 24 20" ), Hook_RegisterHashString, (void **)&Orig_RegisterHashString);
8088 MH_CreateHook (hook::get_pattern (" 48 83 EC 38 33 C0 48 89 54 24 20" ), Hook_RegisterHashString, (void **)&Orig_RegisterHashString);
8189 // MH_CreateHook(hook::get_pattern("48 89 5C 24 08 57 48 83 EC 20 41 B9 40"), Hook_SomeLogFunc, (void**)Orig_SomeLogFunc);
90+ MH_CreateHook (hook::get_pattern (" 48 8D 54 24 20 E8 ? ? ? ? EB 05" , -0x47 ), Hook_LoadArchive, (void **)&Orig_LoadArchive);
8291
8392 if (MH_EnableHook (MH_ALL_HOOKS ) != MH_OK )
8493 {
@@ -132,7 +141,8 @@ BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReser
132141 freopen (" CON" , " w" , stdout);
133142 freopen (" CONIN$" , " r" , stdin);
134143
135- CreateThread (nullptr , 0 , OnAttach, hModule, 0 , nullptr );
144+ OnAttach (hModule);
145+ // CreateThread(nullptr, 0, OnAttach, hModule, 0, nullptr);
136146 }
137147
138148 if (ul_reason_for_call == DLL_PROCESS_DETACH )
0 commit comments