GTA update
This commit is contained in:
parent
ac79a1b90a
commit
8b698efdf4
@ -23,32 +23,22 @@ namespace rage
|
|||||||
class netPlayerData
|
class netPlayerData
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
char pad_0000[16]; //0x0000
|
char pad_0000[8]; //0x0000
|
||||||
uint32_t m_sec_key_time; //0x0010
|
int64_t m_rockstar_id_0; //0x0008
|
||||||
netAddress m_lan_ip; //0x0014
|
char pad_0010[56]; //0x0010
|
||||||
uint16_t m_lan_port; //0x0018
|
uint16_t N000005BF; //0x0048
|
||||||
char pad_001A[2]; //0x001A
|
char pad_004A[2]; //0x004A
|
||||||
netAddress m_relay_ip; //0x001C
|
netAddress m_online_ip; //0x0054
|
||||||
uint32_t m_relay_port; //0x0020
|
int16_t m_online_port; //0x0058
|
||||||
netAddress m_online_ip; //0x0024
|
netAddress m_relay_ip; //0x004C
|
||||||
uint16_t m_online_port; //0x0028
|
int32_t m_relay_port; //0x0050
|
||||||
char pad_002A[22]; //0x002A
|
char pad_005A[6]; //0x005A
|
||||||
uint32_t m_host_token; //0x0040
|
uint32_t m_host_token; //0x0060
|
||||||
char pad_0044[12]; //0x0044
|
char pad_0064[12]; //0x0064
|
||||||
int64_t m_rockstar_id; //0x0050
|
int64_t m_rockstar_id; //0x0070
|
||||||
char pad_0058[12]; //0x0058
|
char pad_0078[12]; //0x0078
|
||||||
char m_name[20]; //0x0064
|
char m_name[20]; //0x0084
|
||||||
}; //Size: 0x0078
|
}; //Size: 0x0098
|
||||||
|
|
||||||
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 netPlayer
|
class netPlayer
|
||||||
{
|
{
|
||||||
@ -63,6 +53,37 @@ namespace rage
|
|||||||
virtual void _0x38() = 0; // 7 (0x38)
|
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
|
class netPlayerMgrBase
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@ -71,71 +92,11 @@ namespace rage
|
|||||||
|
|
||||||
class CNetworkPlayerMgr : netPlayerMgrBase
|
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
|
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)
|
#pragma pack(pop)
|
||||||
|
@ -8,7 +8,6 @@
|
|||||||
// https://github.com/Sainan/GTA-V-Decompiled-Scripts
|
// https://github.com/Sainan/GTA-V-Decompiled-Scripts
|
||||||
//
|
//
|
||||||
// https://github.com/Pocakking/BigBaseV2
|
// https://github.com/Pocakking/BigBaseV2
|
||||||
// https://github.com/1337Nexo/BigBaseV2
|
|
||||||
// https://bitbucket.org/gir489/bigbasev2-fix/src/master/
|
// https://bitbucket.org/gir489/bigbasev2-fix/src/master/
|
||||||
// https://wiki.rage.mp/index.php?title=Category:Assets
|
// https://wiki.rage.mp/index.php?title=Category:Assets
|
||||||
// https://github.com/MAFINS/MenyooSP
|
// https://github.com/MAFINS/MenyooSP
|
||||||
|
@ -229,7 +229,7 @@ namespace big::misc
|
|||||||
//source is valid
|
//source is valid
|
||||||
if (src != nullptr
|
if (src != nullptr
|
||||||
//&& src->is_valid()
|
//&& 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_host_token > (1 << 16)
|
||||||
//&& src->get_net_data()->m_online_port == 6672
|
//&& src->get_net_data()->m_online_port == 6672
|
||||||
)
|
)
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
#include "gui/misc.h"
|
#include "gui/misc.h"
|
||||||
#include "gui.hpp"
|
#include "gui.hpp"
|
||||||
#include "gui/features.hpp"
|
#include "gui/features.hpp"
|
||||||
|
#include "gui/natives_logging.hpp"
|
||||||
|
|
||||||
namespace big
|
namespace big
|
||||||
{
|
{
|
||||||
@ -660,27 +661,27 @@ namespace big
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void buffer_int(rage::datBitBuffer* buffer, uint32_t* value, int32_t length, int32_t index)
|
//static void buffer_int(rage::datBitBuffer* buffer, uint32_t* value, int32_t length, int32_t index)
|
||||||
{
|
//{
|
||||||
__try
|
// __try
|
||||||
{
|
// {
|
||||||
g_hooking->m_buffer_int_hook.get_original<functions::buffer_int_t>()(buffer, value, length, index);
|
// g_hooking->m_buffer_int_hook.get_original<functions::buffer_int_t>()(buffer, value, length, index);
|
||||||
|
|
||||||
if (big::features::protection && big::features::injected)
|
// if (big::features::protection && big::features::injected)
|
||||||
{
|
// {
|
||||||
if (length == 32)
|
// if (length == 32)
|
||||||
{
|
// {
|
||||||
misc::log_buff(LOG_BUFF, sync_type, sync_object_type, index, length, *value, false, "OK");
|
// misc::log_buff(LOG_BUFF, sync_type, sync_object_type, index, length, *value, false, "OK");
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
__except (EXCEPTION_EXECUTE_HANDLER)
|
// __except (EXCEPTION_EXECUTE_HANDLER)
|
||||||
{
|
// {
|
||||||
features::sync++;
|
// features::sync++;
|
||||||
misc::log_buff(LOG_EXCEPTION, sync_type, sync_object_type, index, length, 0, true, "BLOCKED_EXCEPTION");
|
// misc::log_buff(LOG_EXCEPTION, sync_type, sync_object_type, index, length, 0, true, "BLOCKED_EXCEPTION");
|
||||||
misc::block_user(sync_src, true);
|
// misc::block_user(sync_src, true);
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
|
|
||||||
static GtaThread *find_script_thread(rage::joaat_t hash)
|
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_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_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_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_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),
|
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);
|
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())
|
for (auto hash : g_pointers->m_script_program_table->all_script())
|
||||||
{
|
{
|
||||||
|
@ -62,7 +62,7 @@ namespace big
|
|||||||
detour_hook m_script_event_hook;
|
detour_hook m_script_event_hook;
|
||||||
//detour_hook m_game_invite_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::list<script_hook*> m_native_hook;
|
||||||
std::unordered_map<rage::scrNativeHash, rage::scrNativeHandler> m_native;
|
std::unordered_map<rage::scrNativeHash, rage::scrNativeHandler> m_native;
|
||||||
|
@ -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)
|
//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>();
|
// 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)
|
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)
|
||||||
{
|
{
|
||||||
|
@ -29,7 +29,7 @@ namespace big
|
|||||||
|
|
||||||
uint8_t* m_incompatible_version{};
|
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_pack_t m_clone_pack{};
|
||||||
functions::clone_create_t m_clone_create{};
|
functions::clone_create_t m_clone_create{};
|
||||||
functions::clone_sync_t m_clone_sync{};
|
functions::clone_sync_t m_clone_sync{};
|
||||||
|
Loading…
Reference in New Issue
Block a user