Raised This Month: $ Target: $400
 0% 

[REQ] Wallhack / ESP Scrambler [CSGO]


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
SM9
Veteran Member
Join Date: Sep 2013
Location: United Kingdom
Old 05-11-2015 , 09:48   [REQ] Wallhack / ESP Scrambler [CSGO]
Reply With Quote #1

Hello everyone, I feel that Sourcemod Anticheat Wallhack Blocker just does not cut things, But I also believe that it has a feature to send fake position data which screws up wallhacks, the only problem is that it is using the old BitBuffer messages and CSGO uses ProtoBuf, I have no idea on how to convert them, could somebody maybe help me?

Heres the code which needs converting.

PHP Code:
/**
* CS:S FarESP Blocking
*/
#define CS_TEAM_NONE        0    /**< No team yet. */
#define CS_TEAM_SPECTATOR    1    /**< Spectators. */
#define CS_TEAM_T            2    /**< Terrorists. */
#define CS_TEAM_CT            3    /**< Counter-Terrorists. */

#define MAX_RADAR_CLIENTS    36    // Max amount of client data we can include in one message.

new UserMsg:g_msgUpdateRadar INVALID_MESSAGE_ID;
new 
bool:g_bPlayerSpotted[MAXPLAYERS 1];

new 
g_iSpottedCache[MAXPLAYERS 1];
new 
g_iUpdateFrequency;

new 
g_iPlayerManager = -1;
new 
g_iPlayerSpotted = -1;

new 
Handle:g_hCvarForceCamera INVALID_HANDLE;
new 
bool:g_bForceCamera;

FarESP_Enable()
{
    if ((
g_iPlayerManager GetPlayerResourceEntity()) == -1)
        return;
    
    
g_iPlayerSpotted FindSendPropOffs("CCSPlayerResource""m_bPlayerSpotted");
    
SDKHook(g_iPlayerManagerSDKHook_ThinkPostPlayerManager_ThinkPost);
    
    
g_msgUpdateRadar GetUserMessageId("UpdateRadar");
    
HookUserMessage(g_msgUpdateRadarHook_UpdateRadartrue);
    
    
HookEvent("player_death"FarESP_PlayerDeathEventHookMode_Pre);
    
    
g_hCvarForceCamera FindConVar("mp_forcecamera");
    
OnForceCameraChanged(g_hCvarForceCamera"""");
    
HookConVarChange(g_hCvarForceCameraOnForceCameraChanged);
    
    
g_iUpdateFrequency TIME_TO_TICK(2.0);
    
    
g_bFarEspEnabled true;
}

FarESP_Disable()
{
    
SDKUnhook(g_iPlayerManagerSDKHook_ThinkPostPlayerManager_ThinkPost);
    
    for (new 
0sizeof(g_bPlayerSpotted); i++)
    {
        
g_bPlayerSpotted[i] = false;
    }
    
    
UnhookUserMessage(g_msgUpdateRadarHook_UpdateRadartrue);
    
    
UnhookEvent("player_death"FarESP_PlayerDeathEventHookMode_Pre);
    
    
UnhookConVarChange(g_hCvarForceCameraOnForceCameraChanged);
    
    
g_bFarEspEnabled false;
}

public 
Action:FarESP_PlayerDeath(Handle:event, const String:name[], bool:dontBroadcast)
{
    new 
client GetClientOfUserId(GetEventInt(event"userid"));
    
    if (
IS_CLIENT(client) && IsClientInGame(client))
    {
        
SendRadarClient(clientUSERMSG_RELIABLE USERMSG_BLOCKHOOKS);
    }
    
    return 
Plugin_Continue;
}

public 
OnForceCameraChanged(Handle:convar, const String:oldValue[], const String:newValue[])
{
    
g_bForceCamera = (GetConVarInt(convar) == 1);
}

public 
OnMapStart()
{
    if (
g_bEnabled && !g_bFarEspEnabled && g_Game == Game_CSS)
    {
        
FarESP_Enable();
    }
}

public 
OnMapEnd()
{
    if (
g_bFarEspEnabled)
    {
        
FarESP_Disable();
    }
}

public 
Action:Hook_UpdateRadar(UserMsg:msg_idHandle:bf, const players[], playersNumbool:reliablebool:init)
{
    
// We will send custom messages only.
    
return Plugin_Handled;
}

public 
PlayerManager_ThinkPost(entity)
{
    if (!
g_bFarEspEnabled)
        return;
    
    
// Keep track of which players have been spotted.
    
for (new 1<= MaxClientsi++)
    {
        if (
g_bProcess[i] && GetEntData(entityg_iPlayerSpotted i1))
        {
            
// Immediately update this client's data.
            
if (!g_bPlayerSpotted[i])
            {
                
g_bPlayerSpotted[i] = true;
                
SendRadarClient(iUSERMSG_BLOCKHOOKS);
            }
            
            
g_iSpottedCache[i] = g_iTickCount g_iUpdateFrequency;
        }
        else
        {
            
g_bPlayerSpotted[i] = false;
        }
    }
}

FarESP_OnGameFrame()
{
    
// Send the messages once per second and on different ticks.
    
switch (g_iTickCount%g_iTickRate)
    {
        case 
0:
        {
            
SendRadarSpotted();
        }
        case 
1:
        {
            
SendRadarTeam(CS_TEAM_T);
        }
        case 
2:
        {
            
SendRadarTeam(CS_TEAM_CT);
        }
        case 
3:
        {
            
SendRadarObservers();
        }
        case 
4:
        {
            
SendRadarFakeTeam(CS_TEAM_T);
        }
        case 
5:
        {
            
SendRadarFakeTeam(CS_TEAM_CT);
        }
    }
}

SendRadarSpotted()
{
    
// Send scrambled spotted data to all clients.
    
decl iClients[MaxClients];
    new 
numClientscount;
    
    for (new 
1<= MaxClientsi++)
    {
        if (
g_bProcess[i])
        {
            
iClients[numClients++] = i;
        }
    }
    
    if (!
numClients)
        return;
    
    
decl Float:vOrigin[3], Float:vAngles[3];
    new 
Handle:bf StartMessageEx(g_msgUpdateRadariClientsnumClientsUSERMSG_BLOCKHOOKS);
    
    for (new 
1<= MaxClients && count MAX_RADAR_CLIENTSi++)
    {
        if (
g_bPlayerSpotted[i] && g_bProcess[i])
        {
            
GetClientAbsOrigin(ivOrigin);
            
GetClientAbsAngles(ivAngles);
            
            
BfWriteByte(bfi);
            
BfWriteSBitLong(bfRoundToNearest(vOrigin[0] / 4.0), 13);
            
BfWriteSBitLong(bfRoundToNearest(vOrigin[1] / 4.0), 13);
            
BfWriteSBitLong(bfRoundToNearest((vOrigin[2] - MT_GetRandomFloat(500.01000.0)) / 4.0), 13);
            
BfWriteSBitLong(bfRoundToNearest(vAngles[1]), 9);
            
count++;
        }
    }
    
    
BfWriteByte(bf0);
    
EndMessage();
}

SendRadarTeam(team)
{
    
// Send proper team data to all teammates.
    
decl iClients[MaxClients];
    new 
numClients;
    
    for (new 
1<= MaxClientsi++)
    {
        
// Include dead players observering their teammates.
        
if ((g_bProcess[i] || (g_bForceCamera && g_bIsObserver[i])) && g_iTeam[i] == team)
        {
            
iClients[numClients++] = i;
        }
    }
    
    if (!
numClients)
        return;
    
    
decl Float:vOrigin[3], Float:vAngles[3], client;
    new 
Handle:bf StartMessageEx(g_msgUpdateRadariClientsnumClientsUSERMSG_BLOCKHOOKS);
    
    
// Limit payload early.
    
if (numClients >= MAX_RADAR_CLIENTS)
        
numClients MAX_RADAR_CLIENTS 1;
    
    for (new 
0numClientsi++)
    {
        
client iClients[i];
        
        
GetClientAbsOrigin(clientvOrigin);
        
GetClientAbsAngles(clientvAngles);
        
        
BfWriteByte(bfclient);
        
BfWriteSBitLong(bfRoundToNearest(vOrigin[0] / 4.0), 13);
        
BfWriteSBitLong(bfRoundToNearest(vOrigin[1] / 4.0), 13);
        
BfWriteSBitLong(bfRoundToNearest(vOrigin[2] / 4.0), 13);
        
BfWriteSBitLong(bfRoundToNearest(vAngles[1]), 9);
    }
    
    
BfWriteByte(bf0);
    
EndMessage();
}

SendRadarFakeTeam(team)
{
    
// Send fake data to team.
    
decl iReceivers[MaxClients], iSenders[MaxClients];
    new 
numReceiversnumSendersiReceiver;
    
    for (new 
1<= MaxClientsi++)
    {
        if (
g_bProcess[i])
        {
            if (
g_iTeam[i] == team)
            {
                
iReceivers[numReceivers++] = i;
            }
            else if (
g_iSpottedCache[i] < g_iTickCount)
            {
                
iSenders[numSenders++] = i;
            }
        }
    }
    
    if (!
numReceivers || !numSenders)
        return;
    
    
decl Float:vOrigin[3];
    new 
Handle:bf StartMessageEx(g_msgUpdateRadariReceiversnumReceiversUSERMSG_BLOCKHOOKS);
    
    
// Randomize so that every client is ensured fake data.
    
SortIntegers(iReceiversnumReceiversSort_Random);
    
    
// Randomize the payload before limiting.
    
if (numSenders >= MAX_RADAR_CLIENTS)
    {
        
SortIntegers(iSendersnumSendersSort_Random);
        
numSenders MAX_RADAR_CLIENTS 1;
    }
    
    for (new 
0numSendersi++)
    {
        
GetClientAbsOrigin(iReceivers[iReceiver++], vOrigin);
        
        
BfWriteByte(bfiSenders[i]);
        
BfWriteSBitLong(bfRoundToNearest((vOrigin[0] + MT_GetRandomFloat(-1000.01000.0)) / 4.0), 13);
        
BfWriteSBitLong(bfRoundToNearest((vOrigin[1] + MT_GetRandomFloat(-1000.01000.0)) / 4.0), 13);
        
BfWriteSBitLong(bfRoundToNearest((vOrigin[2] + MT_GetRandomFloat(-1000.01000.0)) / 4.0), 13);
        
BfWriteSBitLong(bfRoundToNearest(MT_GetRandomFloat(-180.0180.0)), 9);
        
        if (
iReceiver >= numReceivers)
            
iReceiver 0;
    }
    
    
BfWriteByte(bf0);
    
EndMessage();
}

SendRadarClient(clientflags)
{
    
// A player was spotted and needs to be sent out to all clients.
    
decl iClients[MaxClients];
    new 
numClientsiTeam g_iTeam[client];
    
    for (new 
1<= MaxClientsi++)
    {
        if (
g_bProcess[i] && g_iTeam[i] != iTeam)
        {
            
iClients[numClients++] = i;
        }
    }
    
    if (!
numClients)
        return;
    
    
decl Float:vOrigin[3], Float:vAngles[3];
    new 
Handle:bf StartMessageEx(g_msgUpdateRadariClientsnumClientsflags);
    
    
GetClientAbsOrigin(clientvOrigin);
    
GetClientAbsAngles(clientvAngles);
    
    
BfWriteByte(bfclient);
    
BfWriteSBitLong(bfRoundToNearest(vOrigin[0] / 4.0), 13);
    
BfWriteSBitLong(bfRoundToNearest(vOrigin[1] / 4.0), 13);
    
BfWriteSBitLong(bfRoundToNearest((vOrigin[2] - MT_GetRandomFloat(500.01000.0)) / 4.0), 13);
    
BfWriteSBitLong(bfRoundToNearest(vAngles[1]), 9);
    
    
BfWriteByte(bf0);
    
EndMessage();
}

SendRadarObservers()
{
    
// Send all player data to all observers.
    
decl iClients[MaxClients];
    new 
numClientscount;
    
    for (new 
1<= MaxClientsi++)
    {
        
// Include teammate-observers if forcecamera is disabled.
        
if (g_bIsObserver[i] && (!g_bForceCamera || g_iTeam[i] <= CS_TEAM_SPECTATOR))
        {
            
iClients[numClients++] = i;
        }
    }
    
    if (!
numClients)
        return;
    
    
decl Float:vOrigin[3], Float:vAngles[3];
    new 
Handle:bf StartMessageEx(g_msgUpdateRadariClientsnumClientsUSERMSG_BLOCKHOOKS);
    
    for (new 
1<= MaxClients && count MAX_RADAR_CLIENTSi++)
    {
        if (
g_bProcess[i])
        {
            
GetClientAbsOrigin(ivOrigin);
            
GetClientAbsAngles(ivAngles);
            
            
BfWriteByte(bfi);
            
BfWriteSBitLong(bfRoundToNearest(vOrigin[0] / 4.0), 13);
            
BfWriteSBitLong(bfRoundToNearest(vOrigin[1] / 4.0), 13);
            
BfWriteSBitLong(bfRoundToNearest(vOrigin[2] / 4.0), 13);
            
BfWriteSBitLong(bfRoundToNearest(vAngles[1]), 9);
            
count++;
        }
    }
    
    
BfWriteByte(bf0);
    
EndMessage();

I would highly appreciate it, as it would help put an end to wallhackers.

Many Thanks.
SM9 is offline
Mitchell
~lick~
Join Date: Mar 2010
Old 05-11-2015 , 15:43   Re: [REQ] Wallhack / ESP Scrambler [CSGO]
Reply With Quote #2

Quote:
Originally Posted by xCoderx View Post
I would highly appreciate it, as it would help put an end to wallhackers.

Many Thanks.
I might be a little confused, but how would sending fake radar updates catch hackers?
Most hacks use the player, not the radar.
Mitchell is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 07:56.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode