diff --git a/scripts/gtav-classes.cmake b/scripts/gtav-classes.cmake index efa22ec4..2aa74280 100644 --- a/scripts/gtav-classes.cmake +++ b/scripts/gtav-classes.cmake @@ -3,7 +3,7 @@ include(FetchContent) FetchContent_Declare( gtav_classes GIT_REPOSITORY https://github.com/Yimura/GTAV-Classes.git - GIT_TAG 6d8c0e6edef4ddef3f8b55f7cbf572743ba18ff3 + GIT_TAG 257115997e5ecea9fafbc820a746d9c6f5889e57 GIT_PROGRESS TRUE CONFIGURE_COMMAND "" BUILD_COMMAND "" diff --git a/src/backend/backend.cpp b/src/backend/backend.cpp index ea1be225..3c4b65f6 100644 --- a/src/backend/backend.cpp +++ b/src/backend/backend.cpp @@ -11,9 +11,10 @@ namespace big { register_script_patches(); - while (true) + while (g_running) { g->attempt_save(); + looped::system_disable_sigscanner(); looped::system_self_globals(); looped::system_update_pointers(); looped::system_desync_kick_protection(); diff --git a/src/backend/looped/looped.hpp b/src/backend/looped/looped.hpp index 3a0f0133..486a158e 100644 --- a/src/backend/looped/looped.hpp +++ b/src/backend/looped/looped.hpp @@ -8,9 +8,6 @@ namespace big { class looped { public: - static void api_login_session(); - - static void context_menu(); static void hud_transition_state(); static void tunables_disable_phone(); @@ -19,8 +16,6 @@ namespace big static void player_spectate(); static void player_remote_control_vehicle(); - static void protections_replay_interface(); - static void self_clean_player(); static void self_free_cam_disable_control_action(); static void self_free_cam(); @@ -40,6 +35,7 @@ namespace big static void session_local_time(); + static void system_disable_sigscanner(); static void system_self_globals(); static void system_update_pointers(); static void system_desync_kick_protection(); diff --git a/src/backend/looped/system/disable_sigscanner.cpp b/src/backend/looped/system/disable_sigscanner.cpp new file mode 100644 index 00000000..71269ce7 --- /dev/null +++ b/src/backend/looped/system/disable_sigscanner.cpp @@ -0,0 +1,15 @@ +#include "backend/looped/looped.hpp" +#include "pointers.hpp" +#include "rage/atSingleton.hpp" +#include "security/RageSecurity.hpp" + +namespace big +{ + void looped::system_disable_sigscanner() + { + if (g_pointers->m_security->isValid()) + { + g_pointers->m_security->getInstance()->m_interval = std::numeric_limits::max(); + } + } +} \ No newline at end of file diff --git a/src/pointers.cpp b/src/pointers.cpp index 6708fd27..0fc3e0ab 100644 --- a/src/pointers.cpp +++ b/src/pointers.cpp @@ -1,6 +1,8 @@ #include "common.hpp" #include "pointers.hpp" #include "memory/all.hpp" +#include "rage/atSingleton.hpp" +#include "security/RageSecurity.hpp" namespace big { @@ -584,6 +586,12 @@ namespace big memory::byte_patch::make(ptr.add(1).rip().as(), std::to_array({ 0xB0, 0x01, 0xC3 }))->apply(); // has no observable side effects }); + // Rage Security + main_batch.add("RS", "48 8B ? ? ? ? ? 33 F6 E9 ? ? ? ? 55 48 8D ? ? ? ? ? 48 87 2C 24 C3 48 8B 45 50 0F B6 00", [this](memory::handle ptr) + { + m_security = ptr.add(3).rip().as*>(); + }); + auto mem_region = memory::module("GTA5.exe"); main_batch.run(mem_region); diff --git a/src/pointers.hpp b/src/pointers.hpp index b50904de..79407c48 100644 --- a/src/pointers.hpp +++ b/src/pointers.hpp @@ -11,6 +11,13 @@ class FriendRegistry; class CNetworkPlayerMgr; class Network; +namespace rage +{ + template + class atSingleton; + class RageSecurity; +} + namespace big { class pointers @@ -176,6 +183,8 @@ namespace big // PVOID m_apply_join_request_data; PVOID m_serialize_join_request_message; + + rage::atSingleton* m_security; }; inline pointers* g_pointers{};