How do I make a hack..

Posts 17 of 7 · Page 1 of 1
How do I make a hack..
Yeah, I bet you thought I was some illiterate skid who wants to make hacks with no experience in C++ whatsoever, but I'm not.
I started learning C++ a few weeks ago and I'm still getting the hang of it. But.. how would I start creating a CA hack?
Make a new project (dll libary project) and make a new dll entry point than. ( function main )
Now create a new thread to avoid lagg ingame and test some addresses out posted here on forum. As example i took engine nametags.
Now we need to change the bytes so with it the memory. This is done with the function memcpy. The addresses do the following:
Is there are wall between enemy and player? -> break; The player is not aiming on the enemy? -> break;
So these are 2 checks to block drawing the nametags all time. Both addresses have 2 bytes as example E8\D7 (not real bytes)
Now we want to bypass this check right? So we just NOP ( = no operation) the addresses so they do nothing at the end.
The bytes for this are 90. We have 2 bytes so we need to use them 2 times: 90\90
Now the full source:
Code:
#define NameTags1 = 0x372F678D
#define NameTags2 = 0x372F670A

memcpy((void *)NameTags1, (void *)"\x90\x90", 2);
memcpy((void *)NameTags2, (void *)"\x90\x90", 2);
There are 2 problems why the game will crash anywhen:
1. memcpy is hooked by hackshield and it will see if you use it. You need to protect the memory you write from reading and changing with virtualprotect. Look it up on google
2. You need to restore the original bytes before joining a new game! Otherwise CA (not Hackshield) detect a memory change and crash

Hope I could help u a lil bit :P
Quote Originally Posted by Ch40zz-C0d3r View Post
Code:
#define NameTags1 = 0x372F678D
#define NameTags2 = 0x372F670A

memcpy((void *)NameTags1, (void *)"\x90\x90", 2);
memcpy((void *)NameTags2, (void *)"\x90\x90", 2);
There are 2 problems why the game will crash anywhen:
1. memcpy is hooked by hackshield and it will see if you use it. You need to protect the memory you write from reading and changing with virtualprotect. Look it up on google
2. You need to restore the original bytes before joining a new game! Otherwise CA (not Hackshield) detect a memory change and crash
You also need an else, and to avoid the crash you just need to add the ingame function.
Here is the code for inGame: (credits to Jeff)
Code:
bool inGame()
{
	if(*(int*)GameStatus == 1) {
		return true;
	}else {
		return false;
}
}
Now here is the code for nametags:
Code:
if(nametags) { // if nametags are turned on
	if (inGame()) { // check if it's in game, (prevents crashing when you join a new game)
	memcpy( (PBYTE)NameTags1, (PBYTE)"\x90\x90", 2); // turn on nametags with the on bytes "\x90\x90"
	memcpy( (PBYTE)NameTags2, (PBYTE)"\x90\x90", 2); // tuen on the 2nd nametags addy
}else { // if it's turned off
	memcpy( (PBYTE)NameTags1, (PBYTE)"\x75\x05", 2); // then turn off the nametags (bytes may be wrong)
	memcpy( (PBYTE)NameTags2, (PBYTE)"\x75\x05", 2); // turn off the 2nd nametags addy
}
}
Quote Originally Posted by cubanelite View Post
Code:
bool inGame()
{
	if(*(int*)GameStatus == 1) {
		return true;
	}else {
		return false;
}
}
Code:
bool cIsIngame()
{
if(*(INT*)ADDR_GAMESTATUS == 1)
return true;
return false;
}
Cleaner + shorter code
Quote Originally Posted by flameswor10 View Post
Code:
bool cIsIngame()
{
if(*(INT*)ADDR_GAMESTATUS == 1)
return true;
return false;
}
Cleaner + shorter code
bool cIsIngame()
{
return (*(BYTE*)ADDR_GAMESTATUS == 1)
}

more and more
Quote Originally Posted by Ch40zz-C0d3r View Post
Make a new project (dll libary project) and make a new dll entry point than. ( function main )
Now create a new thread to avoid lagg ingame and test some addresses out posted here on forum. As example i took engine nametags.
Now we need to change the bytes so with it the memory. This is done with the function memcpy. The addresses do the following:
Is there are wall between enemy and player? -> break; The player is not aiming on the enemy? -> break;
So these are 2 checks to block drawing the nametags all time. Both addresses have 2 bytes as example E8\D7 (not real bytes)
Now we want to bypass this check right? So we just NOP ( = no operation) the addresses so they do nothing at the end.
The bytes for this are 90. We have 2 bytes so we need to use them 2 times: 90\90
Now the full source:
Code:
#define NameTags1 = 0x372F678D
#define NameTags2 = 0x372F670A

memcpy((void *)NameTags1, (void *)"\x90\x90", 2);
memcpy((void *)NameTags2, (void *)"\x90\x90", 2);
There are 2 problems why the game will crash anywhen:
1. memcpy is hooked by hackshield and it will see if you use it. You need to protect the memory you write from reading and changing with virtualprotect. Look it up on google
2. You need to restore the original bytes before joining a new game! Otherwise CA (not Hackshield) detect a memory change and crash

Hope I could help u a lil bit :P
if i remember only need nametags1 to work.
NT1 is for alpha team, NT2 is for other team :|
Posts 17 of 7 · Page 1 of 1

Post a Reply

Similar Threads

Tags for this Thread

None

Need help?