Hidden SendClientCheck(..) in SA-MP

Daruk

New member
Joined
Feb 1, 2014
Messages
3
Reaction score
0
So there are 2 new functions in the latest 0.3x and 0.3z server to detect almost any cheat...
Any info on this ? How to avoid it ?

http://www.gtaonline.net/forums/index.php?topic=17275.0 ->
Nouvelle callback :

OnClientCheckResponse(playerid, value_1, value_2, value_3);
qui n'est apparemment appelé que dans les filterscripts.

Nouvelle fonction de scripting :

SendClientCheck(playerid, value_1, value_2, value_3);
 

xzytro

God
Joined
Apr 1, 2013
Messages
2,294
Reaction score
7
It's not to "detect almost any cheat", it's a patch against DoS attacks, against cpu usage increase. I guess you can not avoid this patch.
 

Daruk

New member
Joined
Feb 1, 2014
Messages
3
Reaction score
0
no, the patch is a patch.... but SendClientCheck is a script function to detect cheats and is not mentioned anywhere on sa-mp.com = hidden secret function
 

0x_

Wtf I'm not new....
Staff member
Administrator
Joined
Feb 18, 2013
Messages
1,123
Reaction score
174
The Function, exists abit longer but was never documented.
Since some new Versions it's exported as a pawn native, so it's not a secret function every nap can get it.

Probably you own a server and just want to Check how secure the function is, so dont bother asking questions.
 

TheZeRots

Expert
Joined
Dec 21, 2013
Messages
1,247
Reaction score
1
The Function, exists abit longer but was never documented.
Since some new Versions it's exported as a pawn native, so it's not a secret function every nap can get it.

Probably you own a server and just want to Check how secure the function is, so dont bother asking questions.

I want to know more about it, i.e. how does it work, what does it do, etc.
 

YLess

Member
Joined
Jan 31, 2014
Messages
6
Reaction score
0
As I said before, it computes the checksum for an array of bytes at given address in gta_sa.exe memory, so every cheat can be detected: CLEOs, s0beit, and so on. Talking about RakNet layer, when you connect to the server which calls SendClientCheck, it sends an RPC (contains address) action to the client and client also responds with the RPC (contains checksum).

It can be used like this:
SendClientCheck(playerid, 5 (iCmd), Address, Offset (relative to address), BytesCount);

and callback:
OnClientCheckResponse(playerid, iCmd, Address, checksum);
 

25GHz

Active member
Joined
Feb 19, 2013
Messages
167
Reaction score
0
As I said before, it computes the checksum for an array of bytes at given address in gta_sa.exe memory, so every cheat can be detected: CLEOs, s0beit, and so on. Talking about RakNet layer, when you connect to the server which calls SendClientCheck, it sends an RPC (contains address) action to the client and client also responds with the RPC (contains checksum).

It can be used like this:
SendClientCheck(playerid, 5 (iCmd), Address, Offset (relative to address), BytesCount);

and callback:
OnClientCheckResponse(playerid, iCmd, Address, checksum);
is it possible to patch it?
(i mean, is it client sided patchable?).
 

TheZeRots

Expert
Joined
Dec 21, 2013
Messages
1,247
Reaction score
1
It should be client-side patchable, if we can set a specific array of bytes or perhaps make mods load after the Client Check.
 

YLess

Member
Joined
Jan 31, 2014
Messages
6
Reaction score
0
is it possible to patch it?
(i mean, is it client sided patchable?).
Yes, cause client sends information about current memory state to the server through RPC system, so checksums can be faked to the correct ones (clean gta_sa.exe).
 

Daruk

New member
Joined
Feb 1, 2014
Messages
3
Reaction score
0
[quote author="YLess"]As I said before, it computes the checksum for an array of bytes at given address in gta_sa.exe memory, so every cheat can be detected: CLEOs, s0beit, and so on. Talking about RakNet layer, when you connect to the server which calls SendClientCheck, it sends an RPC (contains address) action to the client and client also responds with the RPC (contains checksum).

It can be used like this:
SendClientCheck(playerid, 5 (iCmd), Address, Offset (relative to address), BytesCount);

and callback:
OnClientCheckResponse(playerid, iCmd, Address, checksum);
is it possible to patch it?
(i mean, is it client sided patchable?).[/quote]
i think s0nictz already blocks requests for SendClientCheck, read that on some Polish forums
but i guess that is not a solution, any low programmer can write a check if OnPlayerClientCHeckResponse isnt called...

the only solution i can imagine is to record all gta_sa.exe memory of a clean gta install to a file and write a tool to redirect SendClientCheck to that file and calculate the response from the file

:hm: :hm::hm:
 

TheZeRots

Expert
Joined
Dec 21, 2013
Messages
1,247
Reaction score
1
We can also fake amount of packages sent, make it controllable or we can redirect it to a clean gta_sa.exe, or perhaps not send anything at all. Basically to do that one has to understand EXACTLY how does this function process data to a server and where from and through which path. Sending false/fake (amounts of) packages is the ultimate solution.
 

0x_

Wtf I'm not new....
Staff member
Administrator
Joined
Feb 18, 2013
Messages
1,123
Reaction score
174
s0nictz -> Blocks it.
Trollbeit -> Blocks it.

It's possible to bypass the Check, also with an valid result.
It just would take abit more RAM.
 
Top