PDA

View Full Version : Pawn - GTA SAMP



7days7
3rd August 2016, 22:40
Hi!

I was wondering if someone is playing in GTA San Andreas Multiplayer :P Because I'm looking for a idea which can solve my problems. Here's information about programing language "pawn" - https://wiki.sa-mp.com/wiki/PAWN It's quite similar to C / C++ as you can see.

Two years ago community note information about possibility of blocking cheaters using checksum. Everyone wanted to know the rules of the function. Me to so here I'm.

This is gamemode (main script on server side) - http://pastebin.com/6rEafQhq
And FilterScript - http://pastebin.com/YwjJS8Dj

The OnClientCheckResponse function have to be in FilterSript, otherwise it will not work. The result of the actions is as follows (server_log.txt):

[22:21:02] [connection] 127.0.0.1 requests connection cookie.
[22:21:03] [connection] incoming connection: 127.0.0.1 id: 0
[22:21:03] [join] 7days7 has joined the server (0:127.0.0.1)
[22:21:03] clientid: 0, actionid: 0x02, checksum: 0x10000012, crc: 1
[22:21:04] clientid: 0, actionid: 0x46, checksum: 0x00, crc: 200
[22:21:04] clientid: 0, actionid: 0x47, checksum: 0x00, crc: 12
[22:21:04] clientid: 0, actionid: 0x48, checksum: 0x249E44, crc: 0

When user is using s0beit (cheat modification) then on actionid "0x02", checksum is equal to 0x10302012. It's good because I can block them before any gameplay. But on samp platform we can still modify gta using cleo modification ( *.cleo extension ). I tried to compare any returned checksum on pure client and client with cleo mods but there was no difference except actionid: 0x48 which is changing any time as I'm check player - http://pastebin.com/5Lhn06V2

I know that checksum is returns us some values of running program, in this case of running gta but I don't know how to find value responsible for other modifications like cleo mods :/ This is to hard for me ;P It's look a bit chaotic so if you've any questions, ask me! Anyway, thank you in advance for response ;-)

Ni3ls
4th August 2016, 09:21
And is there a default checksum? Maybe you can compare the original checksum to a client checksum and block if it is different.

7days7
4th August 2016, 16:32
I had to change code in gamemode because I couldn't detect even s0beit (worse cheat). How it's look - http://pastebin.com/9dSJudtK
Because of move SendClientCheck to "OnPlayerRequestSpawn" by Call this in script, I've noticed that default value of pure client was changed to - 0x10FC2012 I think there's connection between new files in gta folder and returned checksum. I'll show you couple ss's of catalog:

Clear deafult files with multiplayer platform - http://i.imgur.com/6lnO8Wp.jpg
Cheats, s0beit installed - http://i.imgur.com/jGN2xpC.jpg (As you can see, we've new d3d9.dll which is affect on game and checksum. After deleted this file, we can play without any detect.)
Modified gta, Cleo mods (without others cheats) - http://i.imgur.com/CszYcOg.png (We've new file too called vorbisHooked.dll and CLEO.asi)

So if d3d9 has an impact on game, vorbisHooked.dll should too right? I think so but I can't confirm this in value of checksum. After Installation CLEO modifications, nothing happened :/

Ni3ls
5th August 2016, 11:19
Yes all custom .dll affect the game. But the checksum of the exe might also change.

PrzMas
6th September 2016, 16:09
You should read this (http://www.gtao.pl/%3Cfont-colorcdcdcd%3Eskrypt%3C-font%3E-wykrywanie-s0beita-vt99547.htm) and/or this (http://blast.hk/threads/11140/).