Solved CSGO How to learn internal hacks?

  • 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

Oneshot

Meme Tier VIP
Apr 4, 2015
232
190
13
Hello guys i have learned how to make external aimbot, glow, trigger and bhop. But now i wanna move towards internal.
i have read very little about it and its scary. my c++ are not complete any tips on what i should learn to make this possible?
and how do the internal hack work? do you call functions from the game with pointers to gain more futures?
 

Broihon

edgy 12 y/o
Escobar Tier VIP
Fleep Tier Donator
Dec 22, 2013
1,745
40,528
316
If this is your first internal hack just redo everything your external aimbot does internally.
It's really similar - in fact it's even easier.
To read/write memory you don't have to use ReadProcessMemory/WriteProcessMemory. You can just c-cast addresses like this:
*(TYPE*)Address = Value; for writing
Type Value = *(TYPE*)Address; for reading
There's also no need to obtain a process handle.

When dealing with pointers internally go have to be a little bit more carful though. If you try to access an invalid pointer the game will crash.
That means you'll have to add proper checks when dealing with (multilevel) pointers.

When you're planning on making more advanced hacks internal comes in handy aswell because - as you said - you're able to directly call the game's functions or hook into those (or use the source sdk).
For a normal aimbot it's better to just stick to good 'n old reading/writing.
 
Last edited:

Oneshot

Meme Tier VIP
Apr 4, 2015
232
190
13
Thanks for quick answer :) i need to get my c++ skills up. what area in c++ do i need to study to be able to make this work?
and hooking? i have no idea how to write a hook.
 

Broihon

edgy 12 y/o
Escobar Tier VIP
Fleep Tier Donator
Dec 22, 2013
1,745
40,528
316
Thanks for quick answer :) i need to get my c++ skills up. what area in c++ do i need to study to be able to make this work?
and hooking? i have no idea how to write a hook.
For hooking you should go for this tutorial. But before jumping into hooks you should get used to internal stuff.
For that I don't really have a tutorial. When I started making my first internal hack it basically was just a little bit of trial and error. But when you know how to read/write memory using c-casts (in my previous) post you can probably already make your first internal hack.
 

Oneshot

Meme Tier VIP
Apr 4, 2015
232
190
13
Вroihon;45510 said:
For hooking you should go for this tutorial. But before jumping into hooks you should get used to internal stuff.
For that I don't really have a tutorial. When I started making my first internal hack it basically was just a little bit of trial and error. But when you know how to read/write memory using c-casts (in my previous) post you can probably already make your first internal hack.
Thank you :) do you know any working csgo hack source thats internal and not made all anti copy pastaish? i really need to se how internal works. and do i need to write my own injector? or do i have to buy that?

i appreciate that you are helping me out :)
 

Broihon

edgy 12 y/o
Escobar Tier VIP
Fleep Tier Donator
Dec 22, 2013
1,745
40,528
316
Thank you :) do you know any working csgo hack source thats internal and not made all anti copy pastaish? i really need to se how internal works. and do i need to write my own injector? or do i have to buy that?

i appreciate that you are helping me out :)
First of all there's no need to buy an injector. If someone tries to actually sell and injector to you he's a scammer. There are many open source injectors out there. I published my injector here. Other good public injectors are for example PerX / FInjectF / Extreme Injector with a variety of options.

I myself can't provide any internal csgo sources because I don't have any but a quick look the the CS section of GH gave me these:
https://guidedhacking.com/showthread.php?7220-CS-GO-Chams-cs-go-hack-source-code
https://guidedhacking.com/showthread.php?6977-Fleep-Hack-Updated-for-CS-GO-cs-go-hack-source-code

There are many more of course. It's probably not a bad idea to follow Fleep's tutorial insteadf of just studying the source even though it's really not that great in many aspects.
 
  • Like
Reactions: Rake

Oneshot

Meme Tier VIP
Apr 4, 2015
232
190
13
i have looked in to this but i need to learn how to write dll's in the first place before i even try to make internal. try'ed it but failed miserable ;) any good tuts that you know of? sorry if im to annoying im just lost. trying to get good at programming and hacks are the only fun thing to make :) hehehe .

this is my hack ive made minus the visuals those i added latter with fx public hack but the aimbot in this clip is my work
https://www.youtube.com/watch?v=OKj85C0vY-U&feature=youtu.be
 
Last edited:

Oneshot

Meme Tier VIP
Apr 4, 2015
232
190
13
thanks rake you are always helpful. geting a pointer to crosshair id before the playerbaseadress pointer points to anything crashes the game how do i fix that? if i inject the dll before im in a server it will crash the game. i think i heard something about that internals are sensitive about pointers? is there an easy fix for this?
 

Rake

Cesspool Admin
Administrator
Jan 21, 2014
12,118
78,998
2,392
thanks rake you are always helpful. geting a pointer to crosshair id before the playerbaseadress pointer points to anything crashes the game how do i fix that? if i inject the dll before im in a server it will crash the game. i think i heard something about that internals are sensitive about pointers? is there an easy fix for this?
Only dereference pointers when you know they are valid, how you validate is up to you and the game logic
 

Oneshot

Meme Tier VIP
Apr 4, 2015
232
190
13
here is my internal code that i made it works fine when in a server but the problem is that dont know how to check if crosshairids are valid or not if it have a value to it so it crashes.
are there any way to check that? im getting a headache hahaha

C++:
#include <Windows.h>
#include <iostream>
using namespace std;
DWORD dwClientBase;
DWORD WINAPI hackthread(LPVOID param)
{
	while (!dwClientBase)
	{
		dwClientBase = (DWORD)GetModuleHandle("client.dll");
	}
	AllocConsole();
	freopen("CONIN$", "r", stdin);
	freopen("CONOUT$", "w", stdout);
	freopen("CONOUT$", "w", stderr);

	DWORD* localPlayerAddress = (DWORD*)(dwClientBase + 0xA9053C);
	int* Crosshairids = (int*)(*localPlayerAddress + 0x0000AA64);
		int* m_dwForceAttacks = (int*)(dwClientBase + 0x2EF1F40);

	while (true)
	{
		if (*localPlayerAddress != 0 && Crosshairids != nullptr)
		{
			//cout << *Crosshairids << "  " << *m_dwForceAttacks << endl;

			if (*Crosshairids > 0 && GetAsyncKeyState(VK_MBUTTON))
			{
				*m_dwForceAttacks = 5;
				Sleep(25);
				//Beep(500, 50);
				*m_dwForceAttacks = 4;

			}
		}
		Sleep(1);
	}

	return 0;
}

BOOL WINAPI DllMain(HINSTANCE hModule, DWORD dwReason, LPVOID lpReserved)
{
	switch (dwReason)
	{
	case DLL_PROCESS_ATTACH:
		CreateThread(nullptr, 0, hackthread, nullptr, 0, nullptr);
		DisableThreadLibraryCalls(hModule);
		break;

	default:
		break;
	}
	return TRUE;
}
 

Rake

Cesspool Admin
Administrator
Jan 21, 2014
12,118
78,998
2,392
logic from the fleep tutorial:

C++:
//If we are not aiming at anyone or an unwanted entity such as a barrel then return
	if(MyPlayer.CrosshairEntityID == 0)
		return;
	
	//If player is on the same team we skip the triggerbot and DONT shoot
	//-1 because in game the crosshair entity Id's start from 1 instead of 0 in as in the array
	//we take 1 away so it accesses our correct Player Array
	if (PlayerList[MyPlayer.CrosshairEntityID-1].Team == MyPlayer.Team) 
		return;

	//if entity in crosshair is greater than OUR NUMBER of players it means its not an enemy
	if(MyPlayer.CrosshairEntityID > NumOfPlayers)
		return;


	//Everything is as we want so shoot
	//TAKE A SHOT once we know the +attack command has been reset
	if(b_ShotNow)
	{
		//SHOOT
		WriteProcessMemory(fProcess.__HandleProcess, (int*)(fProcess.__dwordClient + dw_Attack), &i_Shoot, sizeof(int), NULL);
		b_ShotNow = !b_ShotNow;
	}
 

Oneshot

Meme Tier VIP
Apr 4, 2015
232
190
13
ohh i think you misunderstand me. The trigger itself works great but i don't have a good method checking if the crosshairid pointer is valid. so when i inject when im not in the game(not in server) the game will crash. because there is no pointer to the playerbase when i am in menu. and when im not in a team there is no value to the crosshairid pointer so when i try to derefrence that pointer the game crashes. im sorry for bad english and that im not 100% clear. readprocessmemory wont give me those errors when trying to read values from pointers are there any built in functions in c++ that can check if a pointer are valid if you know what i mean with that.
 

Rake

Cesspool Admin
Administrator
Jan 21, 2014
12,118
78,998
2,392
ohh i think you misunderstand me. The trigger itself works great but i don't have a good method checking if the crosshairid pointer is valid. so when i inject when im not in the game(not in server) the game will crash. because there is no pointer to the playerbase when i am in menu. and when im not in a team there is no value to the crosshairid pointer so when i try to derefrence that pointer the game crashes. im sorry for bad english and that im not 100% clear. readprocessmemory wont give me those errors when trying to read values from pointers are there any built in functions in c++ that can check if a pointer are valid if you know what i mean with that.
ok so to my knowledge, crosshairid is a number which you subtract 1 from to get the index of the player in the player array. Make sure this number corresponds to a valid entity before accessing a pointer using it. I mean, get a list of valid entity ID's and compare it. Only access the pointer if the entity ID is for a valid entity.

You need to code your hack so each part only activates when it is in the correct gamestate. How you do that, could be many ways. You just need to reverse engineer some variable/pointer that is NULL when not in a game, and not NULL when you're in a game. Every game is different you just gotta figure it out :)
 

Oneshot

Meme Tier VIP
Apr 4, 2015
232
190
13
yeah i tough there would be something like this hahaha internal is hard thanks for helping me out i relay appreciate it. Now i know how to code this kinda. didn't wanna go that way if there was an better alternative :).
Might ask some shit about the SDK but i reckon that might be a different thread :)
 

maxownage01

Jr.Coder
Full Member
Nobleman
Apr 23, 2015
69
493
1
Sorry if I misunderstood, but the crosshair ID is valid, if this is CS GO, you can just use an offset dumper. Odd you get a crash.
Here it is:
0x0000AA70
 
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