Newbie HvHer
- User ID
- 55502
- Messages
- 2
- Reactions
- 1
- Level
- 5
This will add a cheat detection flag with any of the following hacks > [ Kaaba, Cheese, Eax, Dopium, Robertpaste, Fade, Godhook ]
and network with the following hacks > [ kaaba (vmexit free), and cheese beta free ]
go to aimbot.h, and add -
then go to aimbot.cpp and add this at "if (m_player != player) {" (in onnetupdate function)
then again in aimbot.cpp go to "onroundstart" function and add this
again in aimbot.cpp add this as a prefer baim disabler, if you want to not prefer baim when networked
put this in aimbot.h in the reset( ) function
next add this to clientstate.cpp (at the end)
now we can add our cheat detection, in visuals.cpp
now lastly for networking, add this to your resolvestand & resolveair (or whichever resolvers you want affected)
and network with the following hacks > [ kaaba (vmexit free), and cheese beta free ]
go to aimbot.h, and add -
C++:
// networking stuff
float m_networked_angle = 1337.f;
bool m_is_kaaba = false;
bool m_is_cheese_crack = false;
bool m_is_eax = false;
bool m_is_dopium = false;
bool m_is_robertpaste = false;
bool m_is_fade = false;
bool m_is_godhook = false;
int m_network_index;
then go to aimbot.cpp and add this at "if (m_player != player) {" (in onnetupdate function)
C++:
m_is_kaaba = false;
m_is_cheese_crack = false;
m_is_eax = false;
m_is_godhook = false;
m_is_dopium = false;
m_is_robertpaste = false;
m_is_fade = false;
then again in aimbot.cpp go to "onroundstart" function and add this
C++:
m_is_kaaba = false;
m_is_cheese_crack = false;
m_is_eax = false;
m_is_dopium = false;
m_is_robertpaste = false;
m_is_fade = false;
m_is_godhook = false;
again in aimbot.cpp add this as a prefer baim disabler, if you want to not prefer baim when networked
C++:
if ( g_menu.main.aimbot.prefer_baim_disablers.get( 0 ) && ( m_is_kaaba || m_is_cheese_crack ) )
m_prefer_body = false;
put this in aimbot.h in the reset( ) function
C++:
m_is_kaaba = false;
m_is_cheese_crack = false;
m_is_eax = false;
m_is_dopium = false;
m_is_robertpaste = false;
m_is_fade = false;
next add this to clientstate.cpp (at the end)
C++:
struct VoiceDataCustom
{
uint32_t xuid_low{};
uint32_t xuid_high{};
int32_t sequence_bytes{};
uint32_t section_number{};
uint32_t uncompressed_sample_offset{};
__forceinline uint8_t* get_raw_data()
{
return (uint8_t*)this;
}
};
struct CSVCMsg_VoiceData_Legacy
{
char pad_0000[8]; //0x0000
int32_t client; //0x0008
int32_t audible_mask; //0x000C
uint32_t xuid_low{};
uint32_t xuid_high{};
void* voide_data_; //0x0018
int32_t proximity; //0x001C
//int32_t caster; //0x0020
int32_t format; //0x0020
int32_t sequence_bytes; //0x0024
uint32_t section_number; //0x0028
uint32_t uncompressed_sample_offset; //0x002C
__forceinline VoiceDataCustom get_data()
{
VoiceDataCustom cdata;
cdata.xuid_low = xuid_low;
cdata.xuid_high = xuid_high;
cdata.sequence_bytes = sequence_bytes;
cdata.section_number = section_number;
cdata.uncompressed_sample_offset = uncompressed_sample_offset;
return cdata;
}
};
struct CCLCMsg_VoiceData_Legacy
{
uint32_t INetMessage_Vtable; //0x0000
char pad_0004[4]; //0x0004
uint32_t CCLCMsg_VoiceData_Vtable; //0x0008
char pad_000C[8]; //0x000C
void* data; //0x0014
uint32_t xuid_low{};
uint32_t xuid_high{};
int32_t format; //0x0020
int32_t sequence_bytes; //0x0024
uint32_t section_number; //0x0028
uint32_t uncompressed_sample_offset; //0x002C
int32_t cached_size; //0x0030
uint32_t flags; //0x0034
uint8_t no_stack_overflow[0xFF];
__forceinline void set_data(VoiceDataCustom* cdata)
{
xuid_low = cdata->xuid_low;
xuid_high = cdata->xuid_high;
sequence_bytes = cdata->sequence_bytes;
section_number = cdata->section_number;
uncompressed_sample_offset = cdata->uncompressed_sample_offset;
}
};
#define KAABA_KEY 0.0007479516421f
#define CHEESE_KEY 69.f
void __fastcall Hooks::hkVoiceData(void* msg) {
static auto m_oVoiceData = g_hooks.m_client_state.GetOldMethod< FnVoiceData >(CClientState::VOICEDATA);
if (!msg)
return m_oVoiceData(this, msg);
auto local = g_cl.m_local;
CSVCMsg_VoiceData_Legacy* msg_ = (CSVCMsg_VoiceData_Legacy*)msg;
int idx = msg_->client + 1;
AimPlayer* data = &g_aimbot.m_players[idx - 1];
VoiceDataCustom msg_data = msg_->get_data();
if (!local || !local->alive() || !g_csgo.m_engine->IsConnected() || !g_csgo.m_engine->IsInGame() || !g_cl.m_processing)
return m_oVoiceData(this, msg);
if (local->index() == idx)
return m_oVoiceData(this, msg);
if (msg_->format != 0)
return m_oVoiceData(this, msg);
// check if its empty
if (msg_data.section_number == 0 && msg_data.sequence_bytes == 0 && msg_data.uncompressed_sample_offset == 0)
return m_oVoiceData(this, msg);
Voice_Vader* packet = (Voice_Vader*)msg_data.get_raw_data();
player_info_t info;
if (g_menu.main.misc.dumper.get()) {
g_cl.print("receiving | xuid high: %i , xuid low: %i , seq bytes: %i , section nmbr: %i , uncomp sample offset: %i \n", msg_->xuid_high, msg_->xuid_low, msg_->sequence_bytes, msg_->section_number, msg_->uncompressed_sample_offset);
}
// eax
if (!strcmp(packet->cheat_name, XOR("a3lzbW9uZdA==")) || !strcmp(packet->cheat_name, XOR("eax952")))
data->m_is_eax = true;
// cheese free
else if (msg_->sequence_bytes == 321420420) {
data->m_is_cheese_crack = true;
data->m_networked_angle = (*(float*)&msg_->section_number) / CHEESE_KEY;
}
// kaaba free
else if (msg_->xuid_low == 43955
|| msg_->xuid_low == 43969
|| msg_->xuid_low == 43803
|| msg_->sequence_bytes == -858993664) {
data->m_is_kaaba = true;
data->m_networked_angle = (*(float*)&msg_->section_number) * KAABA_KEY;
}
// dopium
else if (msg_->xuid_low == 1338)
data->m_is_dopium = true;
// robertpaste
else if (msg_->xuid_low == 4539731)
data->m_is_robertpaste = true;
// godhook
else if (!strcmp(packet->cheat_name, XOR("g0db00k.indeed")))
data->m_is_godhook = true;
// fade
else if (msg_->xuid_low == 1701077350 || msg_->sequence_bytes == 24930)
data->m_is_fade = true;
m_oVoiceData(this, msg);
}
now we can add our cheat detection, in visuals.cpp
C++:
AimPlayer* data = &g_aimbot.m_players[player->index() - 1];
if (data->m_is_cheese_crack) {
if (dormant)
flags.push_back({ XOR("CHEESE"), { 210, 210, 210, low_alpha } });
else
flags.push_back({ XOR("CHEESE"), { 255, 255, 255, low_alpha } });
}
if (data->m_is_kaaba) {
if (dormant)
flags.push_back({ XOR("KAABA"), { 210,210,210, low_alpha } });
else
flags.push_back({ XOR("KAABA"), { 255, 255, 255, low_alpha } });
}
if (data->m_is_dopium) {
if(dormant)
flags.push_back({ XOR("DOPIUM"), { 210, 210, 210, low_alpha } });
else
flags.push_back({ XOR("DOPIUM"), { 255, 255, 255, low_alpha } });
}
if (data->m_is_eax) {
if (dormant)
flags.push_back({ XOR("EAX"), { 210, 210, 210, low_alpha } });
else
flags.push_back({ XOR("EAX"), { 155, 210, 100, low_alpha } });
}
if (data->m_is_robertpaste) {
if (dormant)
flags.push_back({ XOR("ROBERT"), { 210, 210, 210, low_alpha } });
else
flags.push_back({ XOR("ROBERT"), { 255, 255, 255, low_alpha } });
}
if (data->m_is_fade) {
if (dormant)
flags.push_back({ XOR("FADE"), { 210, 210, 210, low_alpha } });
else
flags.push_back({ XOR("FADE"), { 255, 255, 255, low_alpha } });
}
if (data->m_is_godhook) {
if (dormant)
flags.push_back({ XOR("GODHOOK"), { 210, 210, 210, low_alpha } });
else
flags.push_back({ XOR("GODHOOK"), { 255, 255, 255, low_alpha } });
}
now lastly for networking, add this to your resolvestand & resolveair (or whichever resolvers you want affected)
C++:
if ((data->m_is_cheese_crack || data->m_is_kaaba) && data->m_network_index <= 1) {
record->m_eye_angles.y = data->m_networked_angle;
record->m_resolver_color = { 155, 210, 100 };
record->m_resolver_mode2 = "NETWORKED";
record->m_mode = Modes::RESOLVE_NETWORK;
return;
}