From 8b698efdf4623b7815b407f70646346711c32950 Mon Sep 17 00:00:00 2001 From: Aaron Peapell <80435734+apeapell-wooliesx@users.noreply.github.com> Date: Wed, 7 Apr 2021 13:19:30 +1000 Subject: [PATCH] GTA update --- Salty/src/gta/player.hpp | 135 +++++++++++++------------------------ Salty/src/gui/base_tab.cpp | 1 - Salty/src/gui/misc.cpp | 2 +- Salty/src/hooking.cpp | 47 +++++++------ Salty/src/hooking.hpp | 2 +- Salty/src/pointers.cpp | 8 +-- Salty/src/pointers.hpp | 2 +- 7 files changed, 81 insertions(+), 116 deletions(-) diff --git a/Salty/src/gta/player.hpp b/Salty/src/gta/player.hpp index 3065373..8238184 100644 --- a/Salty/src/gta/player.hpp +++ b/Salty/src/gta/player.hpp @@ -23,32 +23,22 @@ namespace rage class netPlayerData { public: - char pad_0000[16]; //0x0000 - uint32_t m_sec_key_time; //0x0010 - netAddress m_lan_ip; //0x0014 - uint16_t m_lan_port; //0x0018 - char pad_001A[2]; //0x001A - netAddress m_relay_ip; //0x001C - uint32_t m_relay_port; //0x0020 - netAddress m_online_ip; //0x0024 - uint16_t m_online_port; //0x0028 - char pad_002A[22]; //0x002A - uint32_t m_host_token; //0x0040 - char pad_0044[12]; //0x0044 - int64_t m_rockstar_id; //0x0050 - char pad_0058[12]; //0x0058 - char m_name[20]; //0x0064 - }; //Size: 0x0078 - - class nonPhysicalPlayerDataBase - { - public: - virtual ~nonPhysicalPlayerDataBase() = default; // 0 (0x00) - virtual void unk_0x08() = 0; // 1 (0x08) - virtual void unk_0x10() = 0; // 2 (0x10) - virtual void unk_0x18() = 0; // 3 (0x18) - virtual void log(netLoggingInterface* logger) = 0; // 4 (0x20) - }; + char pad_0000[8]; //0x0000 + int64_t m_rockstar_id_0; //0x0008 + char pad_0010[56]; //0x0010 + uint16_t N000005BF; //0x0048 + char pad_004A[2]; //0x004A + netAddress m_online_ip; //0x0054 + int16_t m_online_port; //0x0058 + netAddress m_relay_ip; //0x004C + int32_t m_relay_port; //0x0050 + char pad_005A[6]; //0x005A + uint32_t m_host_token; //0x0060 + char pad_0064[12]; //0x0064 + int64_t m_rockstar_id; //0x0070 + char pad_0078[12]; //0x0078 + char m_name[20]; //0x0084 + }; //Size: 0x0098 class netPlayer { @@ -63,6 +53,37 @@ namespace rage virtual void _0x38() = 0; // 7 (0x38) }; + class nonPhysicalPlayerDataBase + { + public: + virtual ~nonPhysicalPlayerDataBase() = default; // 0 (0x00) + virtual void unk_0x08() = 0; // 1 (0x08) + virtual void unk_0x10() = 0; // 2 (0x10) + virtual void unk_0x18() = 0; // 3 (0x18) + virtual void log(netLoggingInterface* logger) = 0; // 4 (0x20) + }; + + class CNonPhysicalPlayerData : public nonPhysicalPlayerDataBase + { + }; + + class CNetGamePlayer : public rage::netPlayer + { + public: + char pad_0000[16-8]; //0x0000 + CNonPhysicalPlayerData* non_physical_player_data; //0x0010 + char pad_0018[9]; //0x0018 + int8_t player_id; //0x0021 + char pad_0022[15]; //0x0022 + uint32_t packet_receiver_id; //0x0031 + char pad_0035[84]; //0x0035 + uint32_t bubble_id; //0x0089 + char pad_008D[20]; //0x008D + CPlayerInfo* player_info; //0x00A1 + char pad_00A9[24]; //0x00A9 + int32_t m_player; //0x00C1 + }; + class netPlayerMgrBase { public: @@ -71,71 +92,11 @@ namespace rage class CNetworkPlayerMgr : netPlayerMgrBase { - - }; - - class CNonPhysicalPlayerData : public rage::nonPhysicalPlayerDataBase - { - public: - int32_t m_bubble_id; // 0x08 - int32_t m_player_id; // 0x0C - rage::vector3 m_position; // 0x10 - }; - - class CNetGamePlayer : public rage::netPlayer - { - public: - char pad_0008[45]; //0x0008 - int8_t player_id; //0x0035 - char pad_0036[122]; //0x0036 - CPlayerInfo* player_info; //0x00B0 - char pad_00B8[20]; //0x00B8 - uint32_t bubble_id; //0x00CC - uint32_t player; //0x00D0 }; class CPlayerInfo : public rage::fwExtensibleBase { - public: - char pad_0020[20]; //0x0020 - uint32_t m_internal_ip; //0x0034 - uint16_t m_internal_port; //0x0038 - char pad_003A[2]; //0x003A - uint32_t m_relay_ip; //0x003C - uint16_t m_relay_port; //0x0040 - char pad_0042[2]; //0x0042 - uint32_t m_external_ip; //0x0044 - uint16_t m_external_port; //0x0048 - char pad_004A[38]; //0x004A - int64_t m_rockstar_id; //0x0070 - char pad_0078[12]; //0x0078 - char m_name[20]; //0x0084 - char pad_0098[180]; //0x0098 - float m_swim_speed; //0x014C - float m_run_speed; //0x0150 - char pad_0154[81]; //0x0154 - bool m_is_rockstar_dev; //0x01A5 - char pad_01A6[1]; //0x01A6 - bool m_is_cheater; //0x01A7 - char pad_01A8[11]; //0x01A8 - bool m_is_online; //0x01B3 - char pad_01B4[20]; //0x01B4 - class CPed* m_ped; //0x01C8 - char pad_01D0[40]; //0x01D0 - uint32_t m_frame_flags; //0x01F8 - char pad_01FC[28]; //0x01FC - uint32_t m_player_controls; //0x0218 - char pad_021C[1604]; //0x021C - bool m_is_wanted; //0x0860 - char pad_0861[3]; //0x0861 - int8_t m_wanted_level_display; //0x0864 - char pad_0865[3]; //0x0865 - int8_t m_wanted_level; //0x0868 - }; //Size: 0x0869 - - static_assert(sizeof(CPlayerInfo) == 0x869); - - static_assert(sizeof(CNonPhysicalPlayerData) == 0x1C); + }; } #pragma pack(pop) diff --git a/Salty/src/gui/base_tab.cpp b/Salty/src/gui/base_tab.cpp index d562214..84ba5e2 100644 --- a/Salty/src/gui/base_tab.cpp +++ b/Salty/src/gui/base_tab.cpp @@ -8,7 +8,6 @@ // https://github.com/Sainan/GTA-V-Decompiled-Scripts // // https://github.com/Pocakking/BigBaseV2 -// https://github.com/1337Nexo/BigBaseV2 // https://bitbucket.org/gir489/bigbasev2-fix/src/master/ // https://wiki.rage.mp/index.php?title=Category:Assets // https://github.com/MAFINS/MenyooSP diff --git a/Salty/src/gui/misc.cpp b/Salty/src/gui/misc.cpp index 705e516..2046e0a 100644 --- a/Salty/src/gui/misc.cpp +++ b/Salty/src/gui/misc.cpp @@ -229,7 +229,7 @@ namespace big::misc //source is valid if (src != nullptr //&& src->is_valid() - && src->get_net_data()->m_rockstar_id != gta_util::get_local_playerinfo()->m_rockstar_id + //&& src->get_net_data()->m_rockstar_id != gta_util::get_local_playerinfo()->m_rockstar_id //&& src->get_net_data()->m_host_token > (1 << 16) //&& src->get_net_data()->m_online_port == 6672 ) diff --git a/Salty/src/hooking.cpp b/Salty/src/hooking.cpp index 4b55c31..adcd33f 100644 --- a/Salty/src/hooking.cpp +++ b/Salty/src/hooking.cpp @@ -16,6 +16,7 @@ #include "gui/misc.h" #include "gui.hpp" #include "gui/features.hpp" +#include "gui/natives_logging.hpp" namespace big { @@ -660,27 +661,27 @@ namespace big } } - static void buffer_int(rage::datBitBuffer* buffer, uint32_t* value, int32_t length, int32_t index) - { - __try - { - g_hooking->m_buffer_int_hook.get_original()(buffer, value, length, index); + //static void buffer_int(rage::datBitBuffer* buffer, uint32_t* value, int32_t length, int32_t index) + //{ + // __try + // { + // g_hooking->m_buffer_int_hook.get_original()(buffer, value, length, index); - if (big::features::protection && big::features::injected) - { - if (length == 32) - { - misc::log_buff(LOG_BUFF, sync_type, sync_object_type, index, length, *value, false, "OK"); - } - } - } - __except (EXCEPTION_EXECUTE_HANDLER) - { - features::sync++; - misc::log_buff(LOG_EXCEPTION, sync_type, sync_object_type, index, length, 0, true, "BLOCKED_EXCEPTION"); - misc::block_user(sync_src, true); - } - } + // if (big::features::protection && big::features::injected) + // { + // if (length == 32) + // { + // misc::log_buff(LOG_BUFF, sync_type, sync_object_type, index, length, *value, false, "OK"); + // } + // } + // } + // __except (EXCEPTION_EXECUTE_HANDLER) + // { + // features::sync++; + // misc::log_buff(LOG_EXCEPTION, sync_type, sync_object_type, index, length, 0, true, "BLOCKED_EXCEPTION"); + // misc::block_user(sync_src, true); + // } + //} static GtaThread *find_script_thread(rage::joaat_t hash) { @@ -706,7 +707,7 @@ namespace big m_clone_sync_hook("m_clone_sync_hook", g_pointers->m_clone_sync, &clone_sync), m_clone_remove_hook("m_clone_remove_hook", g_pointers->m_clone_remove, &clone_remove), m_clone_pack_hook("m_clone_pack_hook", g_pointers->m_clone_pack, &clone_pack), - m_buffer_int_hook("m_buffer_int_hook", g_pointers->m_buffer_int, &buffer_int), + //m_buffer_int_hook("m_buffer_int_hook", g_pointers->m_buffer_int, &buffer_int), m_sync_can_apply_hook("netSyncTree_CanApplyToObject", g_pointers->m_sync_can_apply, &sync_can_apply), m_sync_read_hook("netSyncTree_ReadFromBuffer", g_pointers->m_sync_read, &sync_read), @@ -769,6 +770,10 @@ namespace big { m_native.emplace(native.first, native.second); } + for (auto native : misc::natives_logging) + { + m_native.emplace(native.first, native.second); + } for (auto hash : g_pointers->m_script_program_table->all_script()) { diff --git a/Salty/src/hooking.hpp b/Salty/src/hooking.hpp index 696bf4a..cbc65ee 100644 --- a/Salty/src/hooking.hpp +++ b/Salty/src/hooking.hpp @@ -62,7 +62,7 @@ namespace big detour_hook m_script_event_hook; //detour_hook m_game_invite_hook; - detour_hook m_buffer_int_hook; + //detour_hook m_buffer_int_hook; std::list m_native_hook; std::unordered_map m_native; diff --git a/Salty/src/pointers.cpp b/Salty/src/pointers.cpp index 4feed80..567b5c5 100644 --- a/Salty/src/pointers.cpp +++ b/Salty/src/pointers.cpp @@ -75,10 +75,10 @@ namespace big ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - main_batch.add("_netBuffer_ReadUnsigned", "41 83 E1 07 45 8B D8 49 C1 FA 03 BB 08 00 00 00", [this](memory::handle ptr) - { - m_buffer_int = ptr.sub(0x12).as(); - }); + //main_batch.add("_netBuffer_ReadUnsigned", "41 83 E1 07 45 8B D8 49 C1 FA 03 BB 08 00 00 00", [this](memory::handle ptr) + //{ + // m_buffer_int = ptr.sub(0x12).as(); + //}); main_batch.add("m_clone_pack", "48 89 5c 24 ? 48 89 6c 24 ? 48 89 74 24 ? 57 48 83 ec ? 48 8b f9 48 8b ca 49 8b e9", [this](memory::handle ptr) { diff --git a/Salty/src/pointers.hpp b/Salty/src/pointers.hpp index 05490db..a26edf6 100644 --- a/Salty/src/pointers.hpp +++ b/Salty/src/pointers.hpp @@ -29,7 +29,7 @@ namespace big uint8_t* m_incompatible_version{}; - functions::buffer_int_t m_buffer_int{}; + //functions::buffer_int_t m_buffer_int{}; functions::clone_pack_t m_clone_pack{}; functions::clone_create_t m_clone_create{}; functions::clone_sync_t m_clone_sync{};