GTA update

This commit is contained in:
Aaron Peapell 2021-04-07 13:19:30 +10:00
parent ac79a1b90a
commit 8b698efdf4
7 changed files with 81 additions and 116 deletions

View File

@ -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)

View File

@ -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

View File

@ -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
)

View File

@ -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<functions::buffer_int_t>()(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<functions::buffer_int_t>()(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())
{

View File

@ -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<script_hook*> m_native_hook;
std::unordered_map<rage::scrNativeHash, rage::scrNativeHandler> m_native;

View File

@ -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<functions::buffer_int_t>();
});
//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<functions::buffer_int_t>();
//});
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)
{

View File

@ -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{};