Outdated Internal CSGO Triggerbot

  • CSGO recently moved logic from 'client_panorama.dll' to 'client.dll', you must update all code that uses 'client_panorama.dll' and replace it with 'client.dll' or the code will not work.
Hexui Undetected CSGO Cheats Sinkicheat PUBG Cheat

Nether

The Angel Of Verdun
Meme Tier VIP
Dank Tier Donator
Dec 11, 2013
293
3,738
16
Hey Guys,

I was bored so I went back to CS:GO to try re-create my external Triggerbot, this source is mainly for learning as I know a few people are having issues with internal hacking,
this code is not perfect but its there for you to update and add correct hooks, ive commented as much as I can I will add more later on when I update the code with hooks etc .

VAC Status: DETECTED
this is detected, don't try use it online (or use at own risk), as we are not hooking to a safe area of memory - (will come with updates soon)

How To:
1. Create Win32Project.
2. Create Required Header & Cpp Files.
3. Populate With Source Code.

Hot Keys:
Insert : Start Trigger Bot
+/- : Increase Fire Response Time
END : Stop Trigger Bot
END : Un-Inject Dll

C++:
#ifndef FUNC_H
#define FUNC_H

#include "Includes.h"

class read; //Definition
class read{
public:
	    
	int i_Enemies[32]; //Enemy Array - Max Ammount Of Enemies Is 16 (32/2)
    int i_Count; //Found Counter / Array Index - Allows Us To Populate Enemy Array Correctly (in order)
	
	void Read()
	{
		for(int i = 0; i < 64; i++)
		{
			//Loop From Base Entity Address by 0x10 On Each Iteration
			CEngine *Entity = *(CEngine**)(((DWORD)GetModuleHandleA("client.dll") + 0xA4C3E4) + (i * 0x10));

			//Prevent Crash From Reading Null Pointer
			if(!Entity)
				continue;

			//If An Enemy Has Been Found, Store Their Entity Index ID Inside Array
			if(Entity->m_iTeamNum != Player->m_iTeamNum && Entity->m_iTeamNum != 1) // 1 = spectators? check correct
			{
				i_Enemies[i_Count] = Entity->m_iIndex;
				i_Count++;
			}
		}
	}
}info;


void Trigger()
{
	//Variables
	using namespace std;
	int iTarList[32]; //Enemy Array
	int iResponse = 1; //Default Fire Rate
	int * i_cID;
	int cID;

	//In-Crosshair
	int iX = (*(int*)(Player) + 0x2374);

	//Read Relevant info	
	info.Read();

	while(1)
	{
		//Read Relevant info
		info.Read();

		//Populate Enemy Array
		for(int i = 0; i < info.i_Count; i++)	
			iTarList[i] = info.i_Enemies[i];	
		
		//Read Whats In Crosshair And Compare Against Array
		cID = (*(int*)(iX));
		i_cID = find(iTarList, iTarList + info.i_Count, cID);

		//Shoot If Current ID Matches Enemy ID
		while(*i_cID == cID)
		{ 
			//Read Whats In Crosshair
		    cID = (*(int*)(iX));
			i_cID = find(iTarList, iTarList + info.i_Count, cID);

			//Writing Shoot To Memory
			*(int*)(dwClient+0xA88358) = 5;
			Sleep(iResponse);
			*(int*)(dwClient+0xA88358) = 4;
			
			//End Triggerbot - Saftey Key Encase We Stuck In Infinite Loop
			if(GetAsyncKeyState(VK_END)&1)
				return;
		}

		//Reset Entity Counter
		info.i_Count = 0;

#pragma region Fire Rate Modifier

		if(GetAsyncKeyState(VK_ADD)&1)
		{
			iResponse++;
			if(iResponse > 15)
				iResponse = 15;

			system("cls");
			_cprintf("%d", iResponse);
		}
		else if(GetAsyncKeyState(VK_SUBTRACT)&1)
		{
			iResponse--;
			if(iResponse < 1)
				iResponse = 1;

			system("cls");
			_cprintf("%d", iResponse);
		}

#pragma endregion

		//End Triggerbot
		if(GetAsyncKeyState(VK_END)&1)
			break;
	}	
}
#endif

C++:
#ifndef INCLUDES_H //If Not Defined
#define INCLUDES_H //Define Now

#pragma once

#define WIN32_LEAN_AND_MEAN //Exclude Un-used Header Files

#include <windows.h> //Standard Header File
#include <iostream> //Constains Input/Output Functions (cin/cout etc..)
#include <TlHelp32.h> //Contains Read/Write Functions
#include <string> //Support For Strings
#include <ctime> //Time Information (Create Timers etc..)
#include <math.h>
#include <algorithm>
#include <conio.h>

#pragma region ReClass

class CEngine;

class CEngine
{
public:
char _0x0000[100];
	__int32 m_iIndex; //0x0064 
char _0x0068[44];
	float m_vecAbsVelocity[3]; //0x0094 
	float m_vecAbsOrigin[3]; //0x00A0 
	float m_vecOrigin[3]; //0x00AC 
char _0x00B8[56];
	__int32 m_iTeamNum; //0x00F0 
char _0x00F4[8];
	__int32 m_iHealth; //0x00FC 
	__int32 m_fFlags; //0x0100 
	float m_vecViewOffset[3]; //0x0104 
	float m_vecVelocity[3]; //0x0110 
char _0x011C[12];
	float m_angNetAngles[3]; //0x0128 
	float m_vecNetOrigin[3]; //0x0134 

};//Size=0x0140

CEngine *Player = *(CEngine**)((DWORD)GetModuleHandleA("client.dll") + 0xA33234);

DWORD dwClient = (DWORD)GetModuleHandleA("client.dll");
DWORD dwServer = (DWORD)GetModuleHandleA("server.dll");

#pragma endregion

#endif

C++:
#include "Func.h"
using namespace std;

DWORD WINAPI MainThread(LPVOID param);

BOOL WINAPI DllMain(HMODULE hModule, DWORD reason, LPVOID reserved)
{
    if(reason == DLL_PROCESS_ATTACH)
    {
		AllocConsole();
		AttachConsole(GetProcessId(hModule));
        CreateThread(0, 0, MainThread, 0, 0, 0);
    }
	else if (reason == DLL_PROCESS_DETACH)
	{
		//Required So We Can Exit
		FreeConsole();
	}
    return TRUE;
}

DWORD WINAPI MainThread(LPVOID param)
{		
	SetConsoleTitleW(L"Nether's CS: GO Hax");
    while (1)
    {
		if(GetAsyncKeyState(VK_INSERT)&1)
		{
			_cprintf("\nON");
			Sleep(10);
			Trigger();
			_cprintf("\nOFF");
		}

		//De-Inject
		if(GetAsyncKeyState(VK_END) & 1)
        {
			   HMODULE myModule = GetModuleHandleA("Trigger.dll");
			   FreeLibraryAndExitThread(myModule, 0);
		}
	}

	return 0;
}

UPDATED: 24/02/2014 | (GMT) 21:32

All feedback on my coding is welcomed bad or good it all helps :)

Credits:
Agent Smith - Helped me before with internal coding and using reclass
Fleep - His tutorials gave me ideas on how to read information efficiently
 
Last edited:

Nether

The Angel Of Verdun
Meme Tier VIP
Dank Tier Donator
Dec 11, 2013
293
3,738
16
Mad respect for you, you have no idea.
Thanks, there is still a lot that can be done to it, i will release more source soon as im doing a lot of internal work so :).

EDITED: Updated source
 
Last edited:

brinkz

Coder
Meme Tier VIP
Sep 3, 2012
209
1,688
12
nice, next step would be to build up a traceray triggerbot with the help of the SDK ;)
 

Nether

The Angel Of Verdun
Meme Tier VIP
Dank Tier Donator
Dec 11, 2013
293
3,738
16
nice, next step would be to build up a traceray triggerbot with the help of the SDK ;)
thanks :D, and tbh I have no idea what a traceray is :p, ill start looking into it when i start using the SDK, got to read up on hooking today so its all good :D
 

Nether

The Angel Of Verdun
Meme Tier VIP
Dank Tier Donator
Dec 11, 2013
293
3,738
16
UPDATE: Code Updates For Increased performance and efficiency

Please post if you get any problems, ofc you will need to update addresses/offsets for new update

C++:
#ifndef FUNC_H
#define FUNC_H

#include "Includes.h"
using namespace std;

class read; //Definition
class read{
public:
	    
	int i_Enemies[32]; //Enemy Array - Max Ammount Of Enemies Is 16 (32/2)
    int i_Count; //Found Counter / Array Index - Allows Us To Populate Enemy Array Correctly (in order)

	void Read()
	{
		for(int i = 0; i < 64; i++)
		{
			//Loop From Base Entity Address by 0x10 On Each Iteration
			CEngine *Entity = *(CEngine**)(((DWORD)GetModuleHandleA("client.dll") + 0xA4C3E4) + (i * 0x10));

			//Prevent Crash From Reading Null Pointer
			if(!Entity)
				return;

			//If An Enemy Has Been Found, Store Their Entity Index ID Inside Array
			if(Entity->m_iTeamNum != Player->m_iTeamNum && Entity->m_iTeamNum != 1) // 1 = spectators? check correct
			{
				i_Enemies[i_Count] = Entity->m_iIndex;
				i_Count++;
			}
		}
		return;
	}
}info;


void Trigger()
{
	//Variables
	int iResponse = 1; //Default Fire Rate
	int * i_cID;
	int cID;

	//In-Crosshair
	int iX = (*(int*)(Player) + 0x2374);

	//Read Relevant info	
	info.Read();

	while(!(GetAsyncKeyState(VK_END))&1)
	{
		//Read Relevant info
		info.Read();
		
		//Read Whats In Crosshair
		cID = (*(int*)(iX));

		//Compare Current ID To Enemy Array
		i_cID = find(info.i_Enemies, info.i_Enemies + info.i_Count, cID);

		//Shoot If Current ID Matches Enemy ID
		if(*i_cID == cID)
		{
			//Writing Shoot To Memory
			*(int*)(dwClient+0xA88358) = 5;
			Sleep(iResponse);
			*(int*)(dwClient+0xA88358) = 4;
		}

		//Reset Entity Counter
		info.i_Count = 0;
	}	
	return;
}
#endif
 
Last edited:
Attention! Before you post:

Read the How to Ask Questions Guide
99% of questions are answered in the Beginner's Guide, do it before asking a question.

No Hack Requests. Post in the correct section.  Search the forum first. Read the rules.

How to make a good post:

  • Fill out the form correctly
  • Tell us the game name & coding language
  • Post everything we need to know to help you
  • Ask specific questions, be descriptive
  • Post errors, line numbers & screenshots
  • Post code snippets using code tags
  • If it's a large project, zip it up and attach it

If you do not comply, your post may be deleted.  We want to help, please make a good post and we will do our best to help you.

Community Mods