Help❗ CSGO Cheats

Posts 1–15 of 24 · Page 1 of 2
❗ CSGO Cheats
How can I make a csgo cheat hard for VAC to detect? I've been talking to jammertobbles and he said something about adding junk code. Any Ideas?
Making it compatible with polyloader would be a nice measure to prevent it from getting VAC detected easily.
Quote Originally Posted by Hunter View Post
Making it compatible with polyloader would be a nice measure to prevent it from getting VAC detected easily.
And how would I do that?

- - - Updated - - -

BTW I heard something about changing their hack "signature". What does it exactly mean? and how do you do it?
Quote Originally Posted by TheCookieBoyYT View Post
And how would I do that?

- - - Updated - - -

BTW I heard something about changing their hack "signature". What does it exactly mean? and how do you do it?
Here you can find a thread which is explaining what is a signature and how to change them by @WasserEsser :
http://www.mpgh.net/forum/showthread.php?t=1083252
it depends on what are your unnecessary stuff, just read the thread i sent you and you will be able to understand everything about signatures.
So the compiler changes the signature?
Only if in your code you leave shit like [add junk] or w/e so Polyloader knows to put some random junk code at that specific location every compile. Or swap some lines around.

If you don't specify polyloader doesn't do much besides compiling without optimization of your code. Which if you look at Polymeme's code and what gets randomized every compile it should make you nervous.
In order to successfully change the signature of a binary, you need to know how the compiler compiles C++ code ( if working with C++ ) into assembly; with that knowledge, you know exactly what parts you have to change in which way to successfully change the signature of this part of the code.

However, you never know what parts of a file Valve gathers. You don't know where they grab their signature nor how big it is. This means that you'd have to change the entire executable in order to be on the very safe side.

Softwares such as PolyLoader try to do that by giving you the option to add junk code in your entire executable. Keep in mind that they also disable optimization for these parts of the code ( or all parts, depending on the implementation of the software ), because with optimization, the compiler wouldn't include the junk code in the binary.

Though, those softwares shouldn't have the name "Poly" :/
Damn, for changing signature you actually need to change the codes.
e.g DWORD EntityList = 0x696969;
To change it let's say DWORD Cookie1337_EntityList = 0x696969;
If it gets detected you can change again. Another e.g DWORD mpghFTWYolo_EntityList = 0x696969;
And use your own codes , btw if you want to be sure get some hex viewer and check your dll/.exe file. Make a fcking photo to nonchanged , then to the changed. If there are any changes u'll know that it's ud.
Quote Originally Posted by ProGaMeR21Ro View Post
Damn, for changing signature you actually need to change the codes.
e.g DWORD EntityList = 0x696969;
To change it let's say DWORD Cookie1337_EntityList = 0x696969;
If it gets detected you can change again. Another e.g DWORD mpghFTWYolo_EntityList = 0x696969;
This is not true.
Variables aswell as functions are accessed via their memory address, not via their name.
Changing the name of variables / functions doesn't do anything.
Quote Originally Posted by WasserEsser View Post
This is not true.
Variables aswell as functions are accessed via their memory address, not via their name.
Changing the name of variables / functions doesn't do anything.
Probably not true, but this method works too lol.
Quote Originally Posted by ProGaMeR21Ro View Post
Probably not true, but this method works too lol.
It doesn't. Changing variable names / function names doesn't change a thing.

Consider the following code:

Code:
#include <ratio>

int Add( int a, int b )
{
	return a + b;
}

int main( int argc, char** argv )
{
	int Return = 0;

	if ( argc > 2 )
	{
		for( int i = 1; i < argc; i++ )
		{			
			int Number1 = atoi( argv[ i ] );

			Return = Add( Return, Number1 );
		}
	}

	return Return;
}
It will parse the command line and add all numbers together. You can start it via the command line with Duh.exe 8 15 8751 1 53 2 and it will add all together.

Note: Optimization is turned off in the following example.

I've generated the signature for the main function and taken out all wildcards. This will assure that it will only find this one particular function.

No exceptions.

55 8b ec 53 8b 5d 08 57 33 ff 83 fb 02 7e 2e 56 8d 77 01 3b de 7e 1f 66 0f 1f 84 00 00 00 00 00 8b 45 0c ff 34 b0 ff 15 48 20 40 00 46 83 c4 04 03 f8 3b f3 7c ea 5e 8b c7 5f 5b 5d c3 8b c7 5f 5b 5d c3

This is the signature for the entire main function, from start to bottom.

Original: Source code shown above.

http://img.marcel-kirchhoff.de/2016-05-08_18-06-14.pngⓘ

Variable names changed: Changed all variable names.

http://img.marcel-kirchhoff.de/2016-05-08_18-06-37.pngⓘ

Function names changed: Changed all function names ( add function ).

http://img.marcel-kirchhoff.de/2016-05-08_18-06-54.pngⓘ

Function names and variable names changed: Changed all function names and variable names.

http://img.marcel-kirchhoff.de/2016-05-08_18-07-09.pngⓘ

You can already see that they look exactly the same, but to assure that, i'll search for the byte pattern in all of those examples. If changing variable names / function names would do anything, you would not find the exact same signature in the other binaries.

http://img.marcel-kirchhoff.de/2016-05-08_18-10-31.pngⓘ

http://img.marcel-kirchhoff.de/2016-05-08_18-10-46.pngⓘ

http://img.marcel-kirchhoff.de/2016-05-08_18-10-58.pngⓘ

http://img.marcel-kirchhoff.de/2016-05-08_18-11-11.pngⓘ

Everything is exactly the same.

Note that the compiler didn't even bother to create a seperate function for the Add function, it just inlined it. But the same principle for the variable naming applies to the function naming.

Variable/Function names are just a way for YOU and the COMPILER to know which variable / function you want to use, the binary will not include them.
Quote Originally Posted by TheCookieBoyYT View Post
How can I make a csgo cheat hard for VAC to detect? I've been talking to jammertobbles and he said something about adding junk code. Any Ideas?
Make your code DIFFERENT from others, junk code is not necessary if only few people use the same copy. Use inline functions (__forceinline), static linking, and on top of the cake obfuscate/protect it with software like VMProtect or Enigma. That should do the job for you.

Best option obviously is to combine & use all the suggestions you get to this thread.
Quote Originally Posted by nullptr_t View Post
and on top of the cake obfuscate/protect it with software like VMProtect or Enigma.
Packing it with Enigma or any other packer won't prevent it from getting VAC detected at all.
Posts 1–15 of 24 · Page 1 of 2
This thread is closed for replies.

Similar Threads

Tags for this Thread

None

Talk with us