GTA update
This commit is contained in:
parent
ac79a1b90a
commit
8b698efdf4
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
)
|
||||
|
@ -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())
|
||||
{
|
||||
|
@ -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;
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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{};
|
||||
|
Loading…
Reference in New Issue
Block a user