From e556490d272d84da01895433689adf78005bdb44 Mon Sep 17 00:00:00 2001 From: Maschell Date: Sun, 3 May 2020 11:34:43 +0200 Subject: [PATCH] Call the CRT hooks at each application start, not just once. --- source/PluginManagement.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/source/PluginManagement.cpp b/source/PluginManagement.cpp index 7c5c67b..8770b0a 100644 --- a/source/PluginManagement.cpp +++ b/source/PluginManagement.cpp @@ -68,10 +68,6 @@ void PluginManagement::memsetBSS(std::vector plugins) { } void PluginManagement::callInitHooks(plugin_information_t *pluginInformation) { - CallHook(pluginInformation, WUPS_LOADER_HOOK_INIT_WUT_MALLOC); - CallHook(pluginInformation, WUPS_LOADER_HOOK_INIT_WUT_NEWLIB); - CallHook(pluginInformation, WUPS_LOADER_HOOK_INIT_WUT_STDCPP); - CallHook(pluginInformation, WUPS_LOADER_HOOK_INIT_VID_MEM); CallHook(pluginInformation, WUPS_LOADER_HOOK_INIT_KERNEL); CallHook(pluginInformation, WUPS_LOADER_HOOK_INIT_OVERLAY); @@ -85,6 +81,9 @@ void PluginManagement::PatchFunctionsAndCallHooks(plugin_information_t* gPluginI PatchInvidualMethodHooks(method_hooks_hooks, method_hooks_size_hooks, method_calls_hooks); for(int32_t plugin_index=0; plugin_indexnumber_used_plugins; plugin_index++) { + CallHookEx(gPluginInformation, WUPS_LOADER_HOOK_INIT_WUT_MALLOC,plugin_index); + CallHookEx(gPluginInformation, WUPS_LOADER_HOOK_INIT_WUT_NEWLIB,plugin_index); + CallHookEx(gPluginInformation, WUPS_LOADER_HOOK_INIT_WUT_STDCPP,plugin_index); CallHookEx(gPluginInformation, WUPS_LOADER_HOOK_INIT_WUT_DEVOPTAB,plugin_index); CallHookEx(gPluginInformation, WUPS_LOADER_HOOK_APPLICATION_START,plugin_index); new_PatchInvidualMethodHooks(&(gPluginInformation->plugin_data[plugin_index].info));