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