feat(Protections): Hooked REPORT_MYSELF_EVENT sender

This commit is contained in:
Yimura 2021-08-08 10:19:04 +02:00
parent 65cacc17f3
commit 3d6b1b667d
No known key found for this signature in database
GPG Key ID: 3D8FF4397E768682
6 changed files with 27 additions and 1 deletions

View File

@ -18,7 +18,7 @@ namespace big::functions
using gta_thread_tick = __int64(GtaThread* a1, unsigned int a2);
using gta_thread_kill = __int64(GtaThread* a1);
using trigger_script_event = int(int unk0, int64_t* args, int argCount, int bitFlags);
using trigger_script_event = int(int unk0, int* args, int argCount, int bitFlags);
using increment_stat_event = bool(uint64_t net_event_struct, int64_t sender, int64_t a3);
@ -44,4 +44,5 @@ namespace big::functions
// Net Event Handlers
using report_cash_spawn = bool(__int64 creport_cash_spawn_event, CNetGamePlayer* source_player);
using report_myself_event_sender = void(__int64 a1, unsigned int a2, unsigned int a3, unsigned int a4);
}

View File

@ -58,6 +58,8 @@ namespace big
// Report Cash Spawn Event
m_report_cash_spawn_event_hook("RCSE", g_pointers->m_report_cash_spawn, &hooks::report_cash_spawn_handler),
// Report Myself Event Sender
m_report_myself_event_sender_hook("RMES", g_pointers->m_report_myself_sender, &hooks::report_myself_event_handler),
// Scripted Game Event Hook
m_scripted_game_event_hook("SGEH", g_pointers->m_scripted_game_event, &hooks::scripted_game_event)
@ -95,6 +97,7 @@ namespace big
m_received_event_hook.enable();
m_report_cash_spawn_event_hook.enable();
m_report_myself_event_sender_hook.enable();
m_scripted_game_event_hook.enable();
@ -107,6 +110,7 @@ namespace big
m_scripted_game_event_hook.disable();
m_report_myself_event_sender_hook.disable();
m_report_cash_spawn_event_hook.disable();
m_received_event_hook.disable();

View File

@ -42,6 +42,7 @@ namespace big
);
static bool report_cash_spawn_handler(__int64 creport_cash_spawn_event, CNetGamePlayer* source_player);
static void report_myself_event_handler(__int64 a1, unsigned int a2, unsigned int a3, unsigned int a4);
static bool scripted_game_event(CScriptedGameEvent* scripted_game_event, CNetGamePlayer* player);
};
@ -83,6 +84,7 @@ namespace big
detour_hook m_received_event_hook;
detour_hook m_report_cash_spawn_event_hook;
detour_hook m_report_myself_event_sender_hook;
detour_hook m_scripted_game_event_hook;
};

View File

@ -0,0 +1,12 @@
#include "hooking.hpp"
#include "natives.hpp"
namespace big
{
void hooks::report_myself_event_handler(__int64 a1, unsigned int a2, unsigned int a3, unsigned int a4)
{
LOG(INFO) << "Blocked REPORT_MYSELF_EVENT";
return;
}
}

View File

@ -197,6 +197,12 @@ namespace big
{
m_ptr_to_handle = ptr.as<decltype(m_ptr_to_handle)>();
});
// Report Myself Event Sender
main_batch.add("RMES", "E8 ? ? ? ? 41 8B 47 0C 39 43 20", [this](memory::handle ptr)
{
m_report_myself_sender = ptr.as<decltype(m_report_myself_sender)>();
});
main_batch.run(memory::module(nullptr));

View File

@ -63,6 +63,7 @@ namespace big
// Net Event Handlers
functions::report_cash_spawn* m_report_cash_spawn{};
functions::report_myself_event_sender* m_report_myself_sender{};
};
inline pointers *g_pointers{};