diff --git a/source/proxy-dll/component/debugging.cpp b/source/proxy-dll/component/debugging.cpp index 6d7bc66e..bedf0e65 100644 --- a/source/proxy-dll/component/debugging.cpp +++ b/source/proxy-dll/component/debugging.cpp @@ -99,11 +99,11 @@ namespace debugging public: void post_unpack() override { - sys_error_hook.create(0x143D36CC0_g, sys_error_stub); + sys_error_hook.create(0x143D34E70_g, sys_error_stub); scheduler::loop(draw_debug_info, scheduler::renderer); scheduler::loop(test_key_catcher, scheduler::main); } }; } -REGISTER_COMPONENT(debugging::component) \ No newline at end of file +REGISTER_COMPONENT(debugging::component) diff --git a/source/proxy-dll/component/demonware.cpp b/source/proxy-dll/component/demonware.cpp index f8bc73b6..83a18e99 100644 --- a/source/proxy-dll/component/demonware.cpp +++ b/source/proxy-dll/component/demonware.cpp @@ -504,16 +504,16 @@ namespace demonware { server_thread = utilities::thread::create_named_thread("Demonware", server_main); - utilities::hook::set(0x144508469_g, 0x0); // CURLOPT_SSL_VERIFYPEER - utilities::hook::set(0x144508455_g, 0xAF); // CURLOPT_SSL_VERIFYHOST - utilities::hook::set(0x144B28D98_g, 0x0); // HTTPS -> HTTP + utilities::hook::set(0x144506619_g, 0x0); // CURLOPT_SSL_VERIFYPEER + utilities::hook::set(0x144506605_g, 0xAF); // CURLOPT_SSL_VERIFYHOST + utilities::hook::set(0x144B26C38_g, 0x0); // HTTPS -> HTTP - utilities::hook::copy_string(0x144A27C70_g, "http://prod.umbrella.demonware.net"); - utilities::hook::copy_string(0x144A2BAA0_g, "http://prod.uno.demonware.net/v1.0"); - utilities::hook::copy_string(0x144A29CB0_g, "http://%s:%d/auth/"); + utilities::hook::copy_string(0x144A25B20_g, "http://prod.umbrella.demonware.net"); + utilities::hook::copy_string(0x144A29950_g, "http://prod.uno.demonware.net/v1.0"); + utilities::hook::copy_string(0x144A27B60_g, "http://%s:%d/auth/"); - utilities::hook::set(0x142DD0E10_g, 0xC301B0); // Live_Qos_Finished - utilities::hook::set(0x1438C2C70_g, 0xC301B0); // Live_Contracts? related to bdUNK125 + utilities::hook::set(0x142DCF110_g, 0xC301B0); // Live_Qos_Finished + utilities::hook::set(0x1438C0DA0_g, 0xC301B0); // Live_Contracts? related to bdUNK125 } void pre_destroy() override @@ -532,4 +532,4 @@ namespace demonware }; } -REGISTER_COMPONENT(demonware::component) \ No newline at end of file +REGISTER_COMPONENT(demonware::component) diff --git a/source/proxy-dll/component/gsc_custom.cpp b/source/proxy-dll/component/gsc_custom.cpp index 81b598ad..93e4b194 100644 --- a/source/proxy-dll/component/gsc_custom.cpp +++ b/source/proxy-dll/component/gsc_custom.cpp @@ -503,7 +503,7 @@ namespace gsc_custom void patch_linking_sys_error() { - auto scr_get_gsc_obj = 0x142748BB0_g; + auto scr_get_gsc_obj = 0x142746EB0_g; // skip the error and the autoexec // 1C1 = syserr start @@ -575,11 +575,11 @@ namespace gsc_custom game::gVmOpJumpTable[shield_devblock_opcode] = vm_op_custom_devblock; // group gsc link - scr_get_gsc_obj_hook.create(0x142748BB0_g, scr_get_gsc_obj_stub); + scr_get_gsc_obj_hook.create(0x142746EB0_g, scr_get_gsc_obj_stub); if (gsc_funcs::enable_dev_blocks) { - gsc_obj_resolve_hook.create(0x142746A30_g, gsc_obj_resolve_stub); + gsc_obj_resolve_hook.create(0x142744D30_g, gsc_obj_resolve_stub); } @@ -588,4 +588,4 @@ namespace gsc_custom }; } -REGISTER_COMPONENT(gsc_custom::component) \ No newline at end of file +REGISTER_COMPONENT(gsc_custom::component) diff --git a/source/proxy-dll/component/gsc_funcs.cpp b/source/proxy-dll/component/gsc_funcs.cpp index f9588325..329361b1 100644 --- a/source/proxy-dll/component/gsc_funcs.cpp +++ b/source/proxy-dll/component/gsc_funcs.cpp @@ -1434,7 +1434,7 @@ namespace gsc_funcs void patch_scrvm_runtime_error() { - const auto scrvm_runtimeerror = 0x1427775B0_g; + const auto scrvm_runtimeerror = 0x1427758B0_g; void* stub = utilities::hook::assemble([scrvm_runtimeerror](utilities::hook::assembler& a) { a.mov(ebx, 0x20); // set errorcode to 0x20 @@ -1540,22 +1540,22 @@ namespace gsc_funcs void post_unpack() override { // replace nulled function references - reinterpret_cast(0x144ED5D90_g)->actionFunc = add_debug_command; // csc - reinterpret_cast(0x1449BAD60_g)->actionFunc = add_debug_command; // gsc + reinterpret_cast(0x144ED3D90_g)->actionFunc = add_debug_command; // csc + reinterpret_cast(0x1449B8C20_g)->actionFunc = add_debug_command; // gsc - scr_get_function_reverse_lookup.create(0x1433AF8A0_g, scr_get_function_reverse_lookup_stub); - cscr_get_function_reverse_lookup.create(0x141F132A0_g, cscr_get_function_reverse_lookup_stub); - cscr_get_function.create(0x141F13140_g, cscr_get_function_stub); - cscr_get_method.create(0x141F13650_g, cscr_get_method_stub); - scr_get_function.create(0x1433AF840_g, scr_get_function_stub); - scr_get_method.create(0x1433AFC20_g, scr_get_method_stub); + scr_get_function_reverse_lookup.create(0x1433AD9D0_g, scr_get_function_reverse_lookup_stub); + cscr_get_function_reverse_lookup.create(0x141F12CE0_g, cscr_get_function_reverse_lookup_stub); + cscr_get_function.create(0x141F12B80_g, cscr_get_function_stub); + cscr_get_method.create(0x141F13090_g, cscr_get_method_stub); + scr_get_function.create(0x1433AD970_g, scr_get_function_stub); + scr_get_method.create(0x1433ADD50_g, scr_get_method_stub); // log gsc errors - scrvm_error.create(0x142770330_g, scrvm_error_stub); - utilities::hook::jump(0x142890470_g, scrvm_log_compiler_error); + scrvm_error.create(0x14276E630_g, scrvm_error_stub); + utilities::hook::jump(0x14288E770_g, scrvm_log_compiler_error); // better runtime error - utilities::hook::jump(0x142748550_g, get_gsc_export_info); + utilities::hook::jump(0x142746850_g, get_gsc_export_info); patch_scrvm_runtime_error(); scheduler::loop(draw_hud, scheduler::renderer); @@ -1563,4 +1563,4 @@ namespace gsc_funcs }; } -REGISTER_COMPONENT(gsc_funcs::component) \ No newline at end of file +REGISTER_COMPONENT(gsc_funcs::component) diff --git a/source/proxy-dll/component/keycatchers.cpp b/source/proxy-dll/component/keycatchers.cpp index 09003ec0..7a22bf5c 100644 --- a/source/proxy-dll/component/keycatchers.cpp +++ b/source/proxy-dll/component/keycatchers.cpp @@ -62,10 +62,10 @@ namespace keycatchers public: void post_unpack() override { - cl_key_event_hook.create(0x142839250_g, cl_key_event_stub); - cl_char_event_hook.create(0x142836F80_g, cl_char_event_stub); + cl_key_event_hook.create(0x142837550_g, cl_key_event_stub); + cl_char_event_hook.create(0x142835280_g, cl_char_event_stub); } }; } -REGISTER_COMPONENT(keycatchers::component) \ No newline at end of file +REGISTER_COMPONENT(keycatchers::component) diff --git a/source/proxy-dll/component/lua.cpp b/source/proxy-dll/component/lua.cpp index 39031b6c..e8134591 100644 --- a/source/proxy-dll/component/lua.cpp +++ b/source/proxy-dll/component/lua.cpp @@ -125,44 +125,44 @@ namespace lua { // - 0x141FD3220_g engine_openurl // - 0x141D34190_g debug - utilities::hook::jump(0x1437358D0_g, lua_unsafe_function_stub); // base_loadfile - utilities::hook::jump(0x143736A50_g, lua_unsafe_function_stub); // base_load - utilities::hook::jump(0x14373B640_g, lua_unsafe_function_stub); // string_dump + utilities::hook::jump(0x143733A00_g, lua_unsafe_function_stub); // base_loadfile + utilities::hook::jump(0x143734B80_g, lua_unsafe_function_stub); // base_load + utilities::hook::jump(0x143739770_g, lua_unsafe_function_stub); // string_dump // io helpers - utilities::hook::jump(0x14373F000_g, lua_unsafe_function_stub); // os_exit - utilities::hook::jump(0x14373F020_g, lua_unsafe_function_stub); // os_remove - utilities::hook::jump(0x14373F150_g, lua_unsafe_function_stub); // os_rename - utilities::hook::jump(0x14373EEC0_g, lua_unsafe_function_stub); // os_tmpname - utilities::hook::jump(0x14373EE90_g, lua_unsafe_function_stub); // os_sleep - utilities::hook::jump(0x14373ED30_g, lua_unsafe_function_stub); // os_execute - utilities::hook::jump(0x14373ED90_g, lua_unsafe_function_stub); // os_getenv - - utilities::hook::jump(0x14373D170_g, lua_unsafe_function_stub); // io_close - utilities::hook::jump(0x14373D060_g, lua_unsafe_function_stub); // io_close_file - utilities::hook::jump(0x14373D030_g, lua_unsafe_function_stub); // io_flush - utilities::hook::jump(0x14375C7B0_g, lua_unsafe_function_stub); // io_output/io_input - utilities::hook::jump(0x14373D7B0_g, lua_unsafe_function_stub); // io_lines - utilities::hook::jump(0x14373D670_g, lua_unsafe_function_stub); // io_lines - utilities::hook::jump(0x14373DD20_g, lua_unsafe_function_stub); // io_open - utilities::hook::jump(0x14373D5B0_g, lua_unsafe_function_stub); // io_read - utilities::hook::jump(0x14373D200_g, lua_unsafe_function_stub); // io_read_file - utilities::hook::jump(0x14373DA90_g, lua_unsafe_function_stub); // io_type - utilities::hook::jump(0x14373CFB0_g, lua_unsafe_function_stub); // io_write - utilities::hook::jump(0x14373CF70_g, lua_unsafe_function_stub); // io_write_file - utilities::hook::jump(0x14373DC60_g, lua_unsafe_function_stub); // io_tmpfile - utilities::hook::jump(0x14373E160_g, lua_unsafe_function_stub); // io_popen - utilities::hook::jump(0x14373DE40_g, lua_unsafe_function_stub); // io_seek_file - utilities::hook::jump(0x14373DF80_g, lua_unsafe_function_stub); // io_setvbuf - utilities::hook::jump(0x14373E0A0_g, lua_unsafe_function_stub); // io_tostring - utilities::hook::jump(0x143735360_g, lua_unsafe_function_stub); // serialize_persist - utilities::hook::jump(0x143735590_g, lua_unsafe_function_stub); // serialize_unpersist - - utilities::hook::jump(0x14373BC40_g, lua_unsafe_function_stub); // havokscript_compiler_settings - utilities::hook::jump(0x14373C670_g, lua_unsafe_function_stub); // havokscript_getgcweights - utilities::hook::jump(0x14373C100_g, lua_unsafe_function_stub); // havokscript_setgcweights - utilities::hook::jump(0x143734DC0_g, lua_unsafe_function_stub); // package_loadlib + utilities::hook::jump(0x14373D130_g, lua_unsafe_function_stub); // os_exit + utilities::hook::jump(0x14373D150_g, lua_unsafe_function_stub); // os_remove + utilities::hook::jump(0x14373D280_g, lua_unsafe_function_stub); // os_rename + utilities::hook::jump(0x14373CFF0_g, lua_unsafe_function_stub); // os_tmpname + utilities::hook::jump(0x14373CFC0_g, lua_unsafe_function_stub); // os_sleep + utilities::hook::jump(0x14373CE60_g, lua_unsafe_function_stub); // os_execute + utilities::hook::jump(0x14373CEC0_g, lua_unsafe_function_stub); // os_getenv + + utilities::hook::jump(0x14373B2A0_g, lua_unsafe_function_stub); // io_close + utilities::hook::jump(0x14373B190_g, lua_unsafe_function_stub); // io_close_file + utilities::hook::jump(0x14373B160_g, lua_unsafe_function_stub); // io_flush + utilities::hook::jump(0x14375A8E0_g, lua_unsafe_function_stub); // io_output/io_input + utilities::hook::jump(0x14373B8E0_g, lua_unsafe_function_stub); // io_lines + utilities::hook::jump(0x14373B7A0_g, lua_unsafe_function_stub); // io_lines + utilities::hook::jump(0x14373BE50_g, lua_unsafe_function_stub); // io_open + utilities::hook::jump(0x14373B6E0_g, lua_unsafe_function_stub); // io_read + utilities::hook::jump(0x14373B330_g, lua_unsafe_function_stub); // io_read_file + utilities::hook::jump(0x14373BBC0_g, lua_unsafe_function_stub); // io_type + utilities::hook::jump(0x14373B0E0_g, lua_unsafe_function_stub); // io_write + utilities::hook::jump(0x14373B0A0_g, lua_unsafe_function_stub); // io_write_file + utilities::hook::jump(0x14373BD90_g, lua_unsafe_function_stub); // io_tmpfile + utilities::hook::jump(0x14373C290_g, lua_unsafe_function_stub); // io_popen + utilities::hook::jump(0x14373BF70_g, lua_unsafe_function_stub); // io_seek_file + utilities::hook::jump(0x14373C0B0_g, lua_unsafe_function_stub); // io_setvbuf + utilities::hook::jump(0x14373C1D0_g, lua_unsafe_function_stub); // io_tostring + utilities::hook::jump(0x143733490_g, lua_unsafe_function_stub); // serialize_persist + utilities::hook::jump(0x1437336C0_g, lua_unsafe_function_stub); // serialize_unpersist + + utilities::hook::jump(0x143739D70_g, lua_unsafe_function_stub); // havokscript_compiler_settings + utilities::hook::jump(0x14373A7A0_g, lua_unsafe_function_stub); // havokscript_getgcweights + utilities::hook::jump(0x14373A230_g, lua_unsafe_function_stub); // havokscript_setgcweights + utilities::hook::jump(0x143732EF0_g, lua_unsafe_function_stub); // package_loadlib } @@ -192,20 +192,20 @@ namespace lua { { if (utilities::json_config::ReadBoolean("lua", "info", false)) { - utilities::hook::jump(0x143956010_g, lua_engine_print_info); + utilities::hook::jump(0x143954280_g, lua_engine_print_info); } if (utilities::json_config::ReadBoolean("lua", "error", false)) { - hksi_lual_error_hook.create(0x143757780_g, hksi_lual_error_stub); - lual_error_hook.create(0x14375D410_g, lual_error_stub); - utilities::hook::jump(0x14423A1D0_g, lui_panic_stub); - utilities::hook::jump(0x143955FA0_g, lua_engine_print_error); - utilities::hook::jump(0x143956090_g, lua_engine_print_warning); + hksi_lual_error_hook.create(0x1437558B0_g, hksi_lual_error_stub); + lual_error_hook.create(0x14375B540_g, lual_error_stub); + utilities::hook::jump(0x144238380_g, lui_panic_stub); + utilities::hook::jump(0x143954210_g, lua_engine_print_error); + utilities::hook::jump(0x143954300_g, lua_engine_print_warning); } patch_unsafe_lua_functions(); } }; } -REGISTER_COMPONENT(lua::component) \ No newline at end of file +REGISTER_COMPONENT(lua::component) diff --git a/source/proxy-dll/component/mods.cpp b/source/proxy-dll/component/mods.cpp index ad5598a2..1a27a538 100644 --- a/source/proxy-dll/component/mods.cpp +++ b/source/proxy-dll/component/mods.cpp @@ -1358,14 +1358,14 @@ namespace mods { // custom assets loading db_find_xasset_header_hook.create(xassets::DB_FindXAssetHeader.get(), db_find_xasset_header_stub); - db_does_xasset_exist_hook.create(0x142EB6C90_g, db_does_xasset_exist_stub); - scr_gsc_obj_link_hook.create(0x142748F10_g, scr_gsc_obj_link_stub); - hksl_loadfile_hook.create(0x14375D6A0_g, hksl_loadfile_stub); - bg_cache_sync_hook.create(0x1405CE0B0_g, bg_cache_sync_stub); + db_does_xasset_exist_hook.create(0x142EB4F90_g, db_does_xasset_exist_stub); + scr_gsc_obj_link_hook.create(0x142747210_g, scr_gsc_obj_link_stub); + hksl_loadfile_hook.create(0x14375B7D0_g, hksl_loadfile_stub); + bg_cache_sync_hook.create(0x1405CDE40_g, bg_cache_sync_stub); command::add("reload_mods", mods_reload_f, "Reload the shield mods"); } }; } -REGISTER_COMPONENT(mods::component) \ No newline at end of file +REGISTER_COMPONENT(mods::component) diff --git a/source/proxy-dll/component/platform.cpp b/source/proxy-dll/component/platform.cpp index 1b8c4c12..eb5e3c39 100644 --- a/source/proxy-dll/component/platform.cpp +++ b/source/proxy-dll/component/platform.cpp @@ -76,22 +76,22 @@ namespace platform void post_unpack() override { - utilities::hook::set(0x1423271D0_g, 0x01B0); // BattleNet_IsDisabled (patch to mov al,1) - utilities::hook::set(0x1423271E0_g, 0x90C301B0); // BattleNet_IsConnected (patch to mov al,1 retn) + utilities::hook::set(0x1423254D0_g, 0x01B0); // BattleNet_IsDisabled (patch to mov al,1) + utilities::hook::set(0x1423254E0_g, 0x90C301B0); // BattleNet_IsConnected (patch to mov al,1 retn) - utilities::hook::set(0x142325210_g, 0xC3); // patch#1 Annoying function crashing game; related to BattleNet (TODO : Needs Further Investigation) - utilities::hook::set(0x142307B40_g, 0xC3); // patch#2 Annoying function crashing game; related to BattleNet (TODO : Needs Further Investigation) - utilities::hook::set(0x143D08290_g, 0x90C301B0); // patch#3 BattleNet_IsModeAvailable? (patch to mov al,1 retn) + utilities::hook::set(0x142323510_g, 0xC3); // patch#1 Annoying function crashing game; related to BattleNet (TODO : Needs Further Investigation) + utilities::hook::set(0x142305E40_g, 0xC3); // patch#2 Annoying function crashing game; related to BattleNet (TODO : Needs Further Investigation) + utilities::hook::set(0x143D06440_g, 0x90C301B0); // patch#3 BattleNet_IsModeAvailable? (patch to mov al,1 retn) - utilities::hook::nop(0x1437DA454_g, 13); // begin cross-auth even without platform being initialized [LiveConnect_BeginCrossAuthPlatform] - utilities::hook::set(0x1444D2D60_g, 0xC301B0); // Auth3 Response RSA signature check [bdAuth::validateResponseSignature] - utilities::hook::set(0x1444E34C0_g, 0xC301B0); // Auth3 Response platform extended data check [bdAuthPC::processPlatformData] + utilities::hook::nop(0x1437D8584_g, 13); // begin cross-auth even without platform being initialized [LiveConnect_BeginCrossAuthPlatform] + utilities::hook::set(0x1444D0F10_g, 0xC301B0); // Auth3 Response RSA signature check [bdAuth::validateResponseSignature] + utilities::hook::set(0x1444E1670_g, 0xC301B0); // Auth3 Response platform extended data check [bdAuthPC::processPlatformData] - utilities::hook::nop(0x1438994E9_g, 22); // get live name even without platform being initialized [Live_UserSignedIn] - utilities::hook::nop(0x1438C3476_g, 22); // get live xuid even without platform being initialized [LiveUser_UserGetXuid] + utilities::hook::nop(0x143897619_g, 22); // get live name even without platform being initialized [Live_UserSignedIn] + utilities::hook::nop(0x1438C15A6_g, 22); // get live xuid even without platform being initialized [LiveUser_UserGetXuid] - utilities::hook::jump(0x142325C70_g, bnet_get_username); // detour battlenet username - utilities::hook::jump(0x142325CA0_g, bnet_get_userid); // detour battlenet userid + utilities::hook::jump(0x142323F70_g, bnet_get_username); // detour battlenet username + utilities::hook::jump(0x142323FA0_g, bnet_get_userid); // detour battlenet userid //PC_TextChat_Print_Hook.create(0x1422D4A20_g, PC_TextChat_Print_Stub); // Disable useless system messages passed into chat box @@ -100,4 +100,4 @@ namespace platform }; } -REGISTER_COMPONENT(platform::component) \ No newline at end of file +REGISTER_COMPONENT(platform::component) diff --git a/source/proxy-dll/component/scheduler.cpp b/source/proxy-dll/component/scheduler.cpp index 445aca85..f9200926 100644 --- a/source/proxy-dll/component/scheduler.cpp +++ b/source/proxy-dll/component/scheduler.cpp @@ -164,8 +164,8 @@ namespace scheduler void post_unpack() override { - r_end_frame_hook.create(0x14361E260_g, r_end_frame_stub); // R_EndFrame - main_frame_hook.create(0x14288BAE0_g, main_frame_stub); // Com_Frame + r_end_frame_hook.create(0x14361C390_g, r_end_frame_stub); // R_EndFrame Updated + main_frame_hook.create(0x142889DE0_g, main_frame_stub); // Com_Frame Updated //g_run_frame_hook.create(0x142D08FC0_g, server_frame_stub); // G_RunFrame } @@ -180,4 +180,4 @@ namespace scheduler }; } -REGISTER_COMPONENT(scheduler::component) \ No newline at end of file +REGISTER_COMPONENT(scheduler::component) diff --git a/source/proxy-dll/component/unlockall.cpp b/source/proxy-dll/component/unlockall.cpp index dba5d2ea..c591972e 100644 --- a/source/proxy-dll/component/unlockall.cpp +++ b/source/proxy-dll/component/unlockall.cpp @@ -149,20 +149,20 @@ namespace unlockall public: void post_unpack() override { - utilities::hook::jump(0x1438AE2F0_g, return_false); // patch LiveStats data source + utilities::hook::jump(0x1438AC420_g, return_false); // patch LiveStats data source - utilities::hook::jump(0x1437F6ED0_g, liveinventory_getitemquantity); // grant every loot item + utilities::hook::jump(0x1437F5000_g, liveinventory_getitemquantity); // grant every loot item - utilities::hook::jump(0x1406BB410_g, bg_unlockedgetchallengeunlockedforindex); - utilities::hook::jump(0x1406B5530_g, bg_unlockablesitemoptionlocked); - utilities::hook::jump(0x1406B34D0_g, bg_unlockablesisitemattachmentlocked); - utilities::hook::jump(0x1406B3290_g, bg_unlockablesisattachmentslotlocked); - utilities::hook::jump(0x1406AC010_g, bg_unlockablesemblemorbackinglockedbychallenge); - utilities::hook::jump(0x144184D20_g, bg_emblemisentitlementbackgroundgranted); - utilities::hook::jump(0x1406B3AA0_g, bg_unlockablesisitemlocked); - utilities::hook::jump(0x1406ae060_g, bg_unlockablesgetcustomclasscount); + utilities::hook::jump(0x1406BB1A0_g, bg_unlockedgetchallengeunlockedforindex); + utilities::hook::jump(0x1406B52C0_g, bg_unlockablesitemoptionlocked); + utilities::hook::jump(0x1406B3260_g, bg_unlockablesisitemattachmentlocked); + utilities::hook::jump(0x1406B3020_g, bg_unlockablesisattachmentslotlocked); + utilities::hook::jump(0x1406ABDA0_g, bg_unlockablesemblemorbackinglockedbychallenge); + utilities::hook::jump(0x144182ED0_g, bg_emblemisentitlementbackgroundgranted); + utilities::hook::jump(0x1406B3830_g, bg_unlockablesisitemlocked); + utilities::hook::jump(0x1406ADDF0_g, bg_unlockablesgetcustomclasscount); } }; } -REGISTER_COMPONENT(unlockall::component) \ No newline at end of file +REGISTER_COMPONENT(unlockall::component) diff --git a/source/proxy-dll/definitions/game.cpp b/source/proxy-dll/definitions/game.cpp index b5a866c1..4d86fccd 100644 --- a/source/proxy-dll/definitions/game.cpp +++ b/source/proxy-dll/definitions/game.cpp @@ -16,7 +16,7 @@ namespace game void verify_game_version() { - if (*(int*)0x1449CA7E8_g != 13869365) // BlackOps4 CL(13869365) BEYQBBUILD106 DEV [Wed Feb 22 16:31:32 2023] + if (*(int*)0x1449C86B8_g != 27458377) // BlackOps4 CL(27458377) BEYQBBUILD107 DEV [Mon Jun 08 09:12:27 2026] { throw std::runtime_error("Unsupported BlackOps4.exe Version. This DLL Expects Latest BNET Build"); } diff --git a/source/proxy-dll/definitions/game.hpp b/source/proxy-dll/definitions/game.hpp index e2c7723c..f24e9c20 100644 --- a/source/proxy-dll/definitions/game.hpp +++ b/source/proxy-dll/definitions/game.hpp @@ -474,118 +474,118 @@ namespace game }; // Main - WEAK symbol Com_Error_{ 0x14288B410_g }; + WEAK symbol Com_Error_{ 0x142889710_g }; // Sys - WEAK symbol Sys_Milliseconds{ 0x143D89E80_g }; - WEAK symbol Sys_GetTLS{ 0x143C56140_g }; + WEAK symbol Sys_Milliseconds{ 0x143D88030_g }; + WEAK symbol Sys_GetTLS{ 0x143C543B0_g }; // Mutex - WEAK symbol ScopedCriticalSectionConstructor{ 0x14289E3C0_g }; - WEAK symbol ScopedCriticalSectionDestructor{ 0x14289E440_g }; + WEAK symbol ScopedCriticalSectionConstructor{ 0x14289C6C0_g }; + WEAK symbol ScopedCriticalSectionDestructor{ 0x14289C740_g }; // Dvar - WEAK symbol Dvar_FindVar{ 0x143CEBE40_g }; - WEAK symbol Dvar_FindVar_Hash{ 0x143CEBED0_g }; + WEAK symbol Dvar_FindVar{ 0x143CE9FF0_g }; + WEAK symbol Dvar_FindVar_Hash{ 0x143CEA080_g }; // Cmd - WEAK symbol Cbuf_AddText{ 0x143CDE880_g }; - WEAK symbol Cbuf_ExecuteBuffer{ 0x143CDEBE0_g }; - WEAK symbol Com_LocalClients_GetPrimary{ 0x142893AF0_g }; + WEAK symbol Cbuf_AddText{ 0x143CDCA30_g }; + WEAK symbol Cbuf_ExecuteBuffer{ 0x143CDCD90_g }; + WEAK symbol Com_LocalClients_GetPrimary{ 0x142891DF0_g }; - WEAK symbol Cmd_AddCommandInternal{ 0x143CDEE80_g }; - WEAK symbol Cbuf_AddServerText_f{ 0x143CDE870_g }; - WEAK symbol Cmd_AddServerCommandInternal{ 0x143CDEEF0_g }; - WEAK symbol Cmd_ExecuteSingleCommand{ 0x143CDF490_g }; + WEAK symbol Cmd_AddCommandInternal{ 0x143CDD030_g }; + WEAK symbol Cbuf_AddServerText_f{ 0x143CDCA20_g }; + WEAK symbol Cmd_AddServerCommandInternal{ 0x143CDD0A0_g }; + WEAK symbol Cmd_ExecuteSingleCommand{ 0x143CDD640_g }; WEAK symbol Cmd_TokenizeStringKernel{ 0x143CE0750_g }; + int max_tokens, bool evalExpressions, CmdArgs* args)> Cmd_TokenizeStringKernel{ 0x143CDE900_g }; - WEAK symbol Cmd_EndTokenizedString{ 0x143CDF070_g }; - WEAK symbol SV_Cmd_TokenizeString{ 0x143CE0A10_g }; - WEAK symbol SV_Cmd_EndTokenizedString{ 0x143CE09C0_g }; + WEAK symbol Cmd_EndTokenizedString{ 0x143CDD220_g }; + WEAK symbol SV_Cmd_TokenizeString{ 0x143CDEBC0_g }; + WEAK symbol SV_Cmd_EndTokenizedString{ 0x143CDEB70_g }; // NET - WEAK symbol NET_OutOfBandData{ 0x142E06390_g }; - WEAK symbol Sys_SendPacket{ 0x143D89900_g }; - WEAK symbol NetAdr_InitFromString{ 0x142E05230_g }; - WEAK symbol NetAdr_IsTheSameAddr{ 0x142E053A0_g }; + WEAK symbol NET_OutOfBandData{ 0x142E04690_g }; + WEAK symbol Sys_SendPacket{ 0x143D87AB0_g }; + WEAK symbol NetAdr_InitFromString{ 0x142E03530_g }; + WEAK symbol NetAdr_IsTheSameAddr{ 0x142E036A0_g }; // Live - WEAK symbol Live_GetConnectivityInformation{ 0x1437FA460_g }; + WEAK symbol Live_GetConnectivityInformation{ 0x1437F8590_g }; // Renderer WEAK symbol T8_AddBaseDrawTextCmd{ 0x143616B60_g }; - WEAK symbol R_AddCmdDrawStretchPic{ 0x143616790_g }; + float* color, int style, int cursorPos, char cursor, float padding)> T8_AddBaseDrawTextCmd{ 0x143614C90_g }; + WEAK symbol R_AddCmdDrawStretchPic{ 0x1436148C0_g }; - WEAK symbol R_TextHeight{ 0x1435B2350_g }; - WEAK symbol UI_TextHeight{ 0x143CD6560_g }; + WEAK symbol R_TextHeight{ 0x1435B0480_g }; + WEAK symbol UI_TextHeight{ 0x143CD4710_g }; - WEAK symbol R_TextWidth{ 0x1435B2530_g }; - WEAK symbol UI_TextWidth{ 0x143CD65B0_g }; + WEAK symbol R_TextWidth{ 0x1435B0660_g }; + WEAK symbol UI_TextWidth{ 0x143CD4760_g }; - WEAK symbol ScrPlace_GetView{ 0x142876E70_g }; + WEAK symbol ScrPlace_GetView{ 0x142875170_g }; // BuildInfo - WEAK symbol Com_GetBuildVersion{ 0x142892F40_g }; - WEAK symbol Live_SystemInfo{ 0x143804B00_g }; + WEAK symbol Com_GetBuildVersion{ 0x142891240_g }; + WEAK symbol Live_SystemInfo{ 0x143802C30_g }; // ETC - WEAK symbol Com_IsInGame{ 0x14288FDB0_g }; - WEAK symbol Com_IsRunningUILevel{ 0x14288FDF0_g }; - WEAK symbol Com_SessionMode_GetMode{ 0x14289EFF0_g }; - WEAK symbol Com_SessionMode_GetModeForAbbreviation{ 0x14289F000_g }; - WEAK symbol Com_SessionMode_GetAbbreviationForMode{0x14289EC70_g}; + WEAK symbol Com_IsInGame{ 0x14288E0B0_g }; + WEAK symbol Com_IsRunningUILevel{ 0x14288E0F0_g }; + WEAK symbol Com_SessionMode_GetMode{ 0x14289D2F0_g }; + WEAK symbol Com_SessionMode_GetModeForAbbreviation{ 0x14289D300_g }; + WEAK symbol Com_SessionMode_GetAbbreviationForMode{0x14289CF70_g}; // SCR - WEAK symbol ScrVm_AddBool{ 0x14276E760_g }; - WEAK symbol ScrVm_AddFloat{ 0x14276E9B0_g }; - WEAK symbol ScrVm_AddHash{ 0x14276EAB0_g }; - WEAK symbol ScrVm_AddInt{ 0x14276EB80_g }; - WEAK symbol ScrVm_AddString{ 0x14276EE30_g }; - WEAK symbol ScrVm_AddUndefined{ 0x14276F3C0_g }; - WEAK symbol ScrVm_AddConstString{ 0x14276E5F0_g }; - WEAK symbol ScrVm_GetBool{ 0x142772AB0_g }; - WEAK symbol ScrVm_GetFloat{ 0x1427733F0_g }; - WEAK symbol ScrVm_GetHash{ 0x1427738E0_g }; - WEAK symbol ScrVm_GetInt{ 0x142773B50_g }; - WEAK symbol ScrVm_GetString{ 0x142774840_g }; - WEAK symbol ScrVm_GetVector{ 0x142774E40_g }; - WEAK symbol ScrVm_GetConstString{ 0x142772E10_g }; - WEAK symbol ScrVm_GetNumParam{ 0x142774440_g }; - WEAK symbol ScrVm_GetPointerType{ 0x1427746E0_g }; - WEAK symbol ScrVm_GetType{ 0x142774A20_g }; - WEAK symbol ScrVm_AddStruct{ 0x14276EF00_g }; - WEAK symbol ScrVm_SetStructField{ 0x142778450_g }; - WEAK symbol ScrVm_AddToArray{ 0x14276F1C0_g }; - WEAK symbol ScrVm_AddToArrayStringIndexed{ 0x14276F230_g }; - WEAK symbol ScrVm_AddVector{ 0x14276F490_g }; - WEAK symbol ScrVar_PushArray{ 0x142775CF0_g }; - WEAK symbol ScrStr_ConvertToString{ 0x142759030_g }; - WEAK symbol ScrVar_NewVariableByIndex{ 0x142760440_g }; - WEAK symbol ScrVar_SetValue{ 0x1427616B0_g }; + WEAK symbol ScrVm_AddBool{ 0x14276CA60_g }; + WEAK symbol ScrVm_AddFloat{ 0x14276CCB0_g }; + WEAK symbol ScrVm_AddHash{ 0x14276CDB0_g }; + WEAK symbol ScrVm_AddInt{ 0x14276CE80_g }; + WEAK symbol ScrVm_AddString{ 0x14276D130_g }; + WEAK symbol ScrVm_AddUndefined{ 0x14276D6C0_g }; + WEAK symbol ScrVm_AddConstString{ 0x14276C8F0_g }; + WEAK symbol ScrVm_GetBool{ 0x142770DB0_g }; + WEAK symbol ScrVm_GetFloat{ 0x1427716F0_g }; + WEAK symbol ScrVm_GetHash{ 0x142771BE0_g }; + WEAK symbol ScrVm_GetInt{ 0x142771E50_g }; + WEAK symbol ScrVm_GetString{ 0x142772B40_g }; + WEAK symbol ScrVm_GetVector{ 0x142773140_g }; + WEAK symbol ScrVm_GetConstString{ 0x142771110_g }; + WEAK symbol ScrVm_GetNumParam{ 0x142772740_g }; + WEAK symbol ScrVm_GetPointerType{ 0x1427729E0_g }; + WEAK symbol ScrVm_GetType{ 0x142772D20_g }; + WEAK symbol ScrVm_AddStruct{ 0x14276D200_g }; + WEAK symbol ScrVm_SetStructField{ 0x142776750_g }; + WEAK symbol ScrVm_AddToArray{ 0x14276D4C0_g }; + WEAK symbol ScrVm_AddToArrayStringIndexed{ 0x14276D530_g }; + WEAK symbol ScrVm_AddVector{ 0x14276D790_g }; + WEAK symbol ScrVar_PushArray{ 0x142773FF0_g }; + WEAK symbol ScrStr_ConvertToString{ 0x142757330_g }; + WEAK symbol ScrVar_NewVariableByIndex{ 0x14275E740_g }; + WEAK symbol ScrVar_SetValue{ 0x14275F9B0_g }; - WEAK symbol CScr_GetFunction{ 0x141F13140_g }; - WEAK symbol Scr_GetFunction{ 0x1433AF840_g }; - WEAK symbol CScr_GetMethod{ 0x141F13650_g }; - WEAK symbol Scr_GetMethod{ 0x1433AFC20_g }; - WEAK symbol Scr_GetGscExportInfo{ 0x142748550_g }; + WEAK symbol CScr_GetFunction{ 0x141F12B80_g }; + WEAK symbol Scr_GetFunction{ 0x1433AD970_g }; + WEAK symbol CScr_GetMethod{ 0x141F13090_g }; + WEAK symbol Scr_GetMethod{ 0x1433ADD50_g }; + WEAK symbol Scr_GetGscExportInfo{ 0x142746850_g }; - WEAK symbol ScrVm_Error{ 0x142770330_g }; - WEAK symbol scrVarPub{ 0x148307880_g }; - WEAK symbol scrVarGlob{ 0x148307830_g }; - WEAK symbol scrVmPub{ 0x148307AA0_g }; + WEAK symbol ScrVm_Error{ 0x14276E630_g }; + WEAK symbol scrVarPub{ 0x148305280_g }; + WEAK symbol scrVarGlob{ 0x148305230_g }; + WEAK symbol scrVmPub{ 0x1483054A0_g }; - WEAK symbol gVmOpJumpTable{ 0x144EED340_g }; - WEAK symbol gObjFileInfoCount{ 0x1482F76B0_g }; - WEAK symbol gObjFileInfo{ 0x1482EFCD0_g }; + WEAK symbol gVmOpJumpTable{ 0x144EED340_g }; // Unchanged + WEAK symbol gObjFileInfoCount{ 0x1482F50B0_g }; + WEAK symbol gObjFileInfo{ 0x1482ED6D0_g }; // LUA - WEAK symbol Lua_CoD_LoadLuaFile{ 0x143962DF0_g }; - WEAK symbol Lua_CoD_LuaStateManager_Error{ 0x14398A860_g }; - WEAK symbol hks_obj_tolstring{ 0x143755730_g }; - WEAK symbol hks_obj_tonumber{ 0x143755A90_g }; + WEAK symbol Lua_CoD_LoadLuaFile{ 0x143961060_g }; + WEAK symbol Lua_CoD_LuaStateManager_Error{ 0x143988AD0_g }; + WEAK symbol hks_obj_tolstring{ 0x143753860_g }; + WEAK symbol hks_obj_tonumber{ 0x143753BC0_g }; #define R_AddCmdDrawText(TXT, MC, F, X, Y, XS, YS, R, C, S) \ @@ -601,22 +601,22 @@ namespace game /////////////////////////////////////////////////////////////////////////// // NAME TABLES // /////////////////////////////////////////////////////////////////////////// - WEAK symbol var_typename{ 0x144EED240_g }; // GSC Types + WEAK symbol var_typename{ 0x144EEB240_g }; // GSC Types - WEAK symbol builtinLabels{ 0x144F11530_g }; // Console Labels + WEAK symbol builtinLabels{ 0x144F0F530_g }; // Console Labels /////////////////////////////////////////////////////////////////////////// // VARIABLES // /////////////////////////////////////////////////////////////////////////// - WEAK symbol sharedUiInfo{ 0x14F956850_g }; + WEAK symbol sharedUiInfo{ 0x14F954250_g }; - WEAK symbol cmd_functions{ 0x14F99B188_g }; - WEAK symbol sv_cmd_args{ 0x14F998070_g }; + WEAK symbol cmd_functions{ 0x14F998B88_g }; + WEAK symbol sv_cmd_args{ 0x14F995A70_g }; - WEAK symbol keyCatchers{ 0x148A53F84_g }; - WEAK symbol playerKeys{ 0x148A3EF80_g }; + WEAK symbol keyCatchers{ 0x148A51984_g }; + WEAK symbol playerKeys{ 0x148A3C980_g }; // Global game definitions constexpr auto CMD_MAX_NESTING = 8; -} \ No newline at end of file +} diff --git a/source/proxy-dll/definitions/xassets.hpp b/source/proxy-dll/definitions/xassets.hpp index 58d968d7..c7fd8b7b 100644 --- a/source/proxy-dll/definitions/xassets.hpp +++ b/source/proxy-dll/definitions/xassets.hpp @@ -332,15 +332,15 @@ namespace xassets void(*set_name)(void* header, game::BO4_AssetRef_t* name); }; - WEAK game::symbol s_XAssetTypeInfo{ 0x14498BB00_g }; + WEAK game::symbol s_XAssetTypeInfo{ 0x1449899D0_g }; - WEAK game::symbol Demo_AddBGCacheAndRegister{ 0x1405CF5A0_g }; - WEAK game::symbol BG_Cache_RegisterAndGet{ 0x1405CEC20_g }; - WEAK game::symbol BG_Cache_GetTypeIndexInternal{ 0x1405CDBD0_g }; + WEAK game::symbol Demo_AddBGCacheAndRegister{ 0x1405CF330_g }; + WEAK game::symbol BG_Cache_RegisterAndGet{ 0x1405CE9B0_g }; + WEAK game::symbol BG_Cache_GetTypeIndexInternal{ 0x1405CD960_g }; BGCacheTypes BG_Cache_GetTypeIndex(const char* name); const char* BG_Cache_GetTypeName(BGCacheTypes type); XAssetType DB_GetXAssetTypeIndex(const char* name); const char* DB_GetXAssetTypeName(XAssetType type); - WEAK game::symbol DB_FindXAssetHeader{ 0x142EB75B0_g }; + WEAK game::symbol DB_FindXAssetHeader{ 0x142EB58B0_g }; } \ No newline at end of file diff --git a/source/proxy-dll/spoofer/spoofcall.cpp b/source/proxy-dll/spoofer/spoofcall.cpp index 0521f076..92e1b06d 100644 --- a/source/proxy-dll/spoofer/spoofcall.cpp +++ b/source/proxy-dll/spoofer/spoofcall.cpp @@ -47,9 +47,9 @@ namespace spoofcall uint64_t get_callstack_return_stub() { - const auto placeholder = 0x1403CF1C6_g; + const auto placeholder = 0x1403CEF26_g; - utilities::hook::set(placeholder - 2, 0xFF); // fakes a call + utilities::hook::set(placeholder - 2, 0xD0FF); // fakes a call utilities::hook::nop(placeholder, 1); utilities::hook::jump(placeholder + 1, utilities::hook::assemble(callstack_return_stub)); @@ -84,9 +84,10 @@ namespace spoofcall if (!spoofer_initialized) { callstack_proxy_addr = utilities::hook::assemble(callstack_stub); + spoofer_initialized = true; } address_to_call = funcAddr; return callstack_proxy_addr; } -} \ No newline at end of file +}