|
55 | 55 | #include <Unreal/World.hpp> |
56 | 56 | #include <UnrealDef.hpp> |
57 | 57 |
|
58 | | -#include <polyhook2/PE/IatHook.hpp> |
59 | | - |
60 | 58 | namespace RC |
61 | 59 | { |
62 | 60 | // Commented out because this system (turn off hotkeys when in-game console is open) it doesn't work properly. |
@@ -132,31 +130,31 @@ namespace RC |
132 | 130 | void* HookedLoadLibraryA(const char* dll_name) |
133 | 131 | { |
134 | 132 | UE4SSProgram& program = UE4SSProgram::get_program(); |
135 | | - HMODULE lib = PLH::FnCast(program.m_hook_trampoline_load_library_a, &LoadLibraryA)(dll_name); |
| 133 | + HMODULE lib = program.m_load_library_a_hook.call<HMODULE>(dll_name); |
136 | 134 | program.fire_dll_load_for_cpp_mods(ensure_str(dll_name)); |
137 | 135 | return lib; |
138 | 136 | } |
139 | 137 |
|
140 | 138 | void* HookedLoadLibraryExA(const char* dll_name, void* file, int32_t flags) |
141 | 139 | { |
142 | 140 | UE4SSProgram& program = UE4SSProgram::get_program(); |
143 | | - HMODULE lib = PLH::FnCast(program.m_hook_trampoline_load_library_ex_a, &LoadLibraryExA)(dll_name, file, flags); |
| 141 | + HMODULE lib = program.m_load_library_ex_a_hook.call<HMODULE>(dll_name, file, flags); |
144 | 142 | program.fire_dll_load_for_cpp_mods(ensure_str(dll_name)); |
145 | 143 | return lib; |
146 | 144 | } |
147 | 145 |
|
148 | 146 | void* HookedLoadLibraryW(const wchar_t* dll_name) |
149 | 147 | { |
150 | 148 | UE4SSProgram& program = UE4SSProgram::get_program(); |
151 | | - HMODULE lib = PLH::FnCast(program.m_hook_trampoline_load_library_w, &LoadLibraryW)(dll_name); |
| 149 | + HMODULE lib = program.m_load_library_w_hook.call<HMODULE>(dll_name); |
152 | 150 | program.fire_dll_load_for_cpp_mods(ToCharTypePtr(dll_name)); |
153 | 151 | return lib; |
154 | 152 | } |
155 | 153 |
|
156 | 154 | void* HookedLoadLibraryExW(const wchar_t* dll_name, void* file, int32_t flags) |
157 | 155 | { |
158 | 156 | UE4SSProgram& program = UE4SSProgram::get_program(); |
159 | | - HMODULE lib = PLH::FnCast(program.m_hook_trampoline_load_library_ex_w, &LoadLibraryExW)(dll_name, file, flags); |
| 157 | + HMODULE lib = program.m_load_library_ex_w_hook.call<HMODULE>(dll_name, file, flags); |
160 | 158 | program.fire_dll_load_for_cpp_mods(ToCharTypePtr(dll_name)); |
161 | 159 | return lib; |
162 | 160 | } |
@@ -232,35 +230,10 @@ namespace RC |
232 | 230 | #define UE4SS_COMPILER STR("MSVC") |
233 | 231 | #endif |
234 | 232 |
|
235 | | - Output::send(STR("UE4SS Build Configuration: {} ({})\n"), ensure_str(UE4SS_CONFIGURATION), UE4SS_COMPILER); |
236 | | - |
237 | | - m_load_library_a_hook = std::make_unique<PLH::IatHook>("kernel32.dll", |
238 | | - "LoadLibraryA", |
239 | | - std::bit_cast<uint64_t>(&HookedLoadLibraryA), |
240 | | - &m_hook_trampoline_load_library_a, |
241 | | - L""); |
242 | | - m_load_library_a_hook->hook(); |
243 | | - |
244 | | - m_load_library_ex_a_hook = std::make_unique<PLH::IatHook>("kernel32.dll", |
245 | | - "LoadLibraryExA", |
246 | | - std::bit_cast<uint64_t>(&HookedLoadLibraryExA), |
247 | | - &m_hook_trampoline_load_library_ex_a, |
248 | | - L""); |
249 | | - m_load_library_ex_a_hook->hook(); |
250 | | - |
251 | | - m_load_library_w_hook = std::make_unique<PLH::IatHook>("kernel32.dll", |
252 | | - "LoadLibraryW", |
253 | | - std::bit_cast<uint64_t>(&HookedLoadLibraryW), |
254 | | - &m_hook_trampoline_load_library_w, |
255 | | - L""); |
256 | | - m_load_library_w_hook->hook(); |
257 | | - |
258 | | - m_load_library_ex_w_hook = std::make_unique<PLH::IatHook>("kernel32.dll", |
259 | | - "LoadLibraryExW", |
260 | | - std::bit_cast<uint64_t>(&HookedLoadLibraryExW), |
261 | | - &m_hook_trampoline_load_library_ex_w, |
262 | | - L""); |
263 | | - m_load_library_ex_w_hook->hook(); |
| 233 | + m_load_library_a_hook = safetyhook::create_inline(LoadLibraryA, HookedLoadLibraryA); |
| 234 | + m_load_library_ex_a_hook = safetyhook::create_inline(LoadLibraryExA, HookedLoadLibraryExA); |
| 235 | + m_load_library_w_hook = safetyhook::create_inline(LoadLibraryW, HookedLoadLibraryW); |
| 236 | + m_load_library_ex_w_hook = safetyhook::create_inline(LoadLibraryExW, HookedLoadLibraryExW); |
264 | 237 |
|
265 | 238 | Unreal::UnrealInitializer::SetupUnrealModules(); |
266 | 239 |
|
|
0 commit comments