Welcome Guest ( Login | Register )


All times are UTC - 5 hours



Post new topic Reply to topic  [ 142 posts ]  Go to page 1, 2, 3, 4, 5 ... 10  Next
Author Message
PostPosted: Mon Mar 08, 2004 7:33 pm   Post subject: Protecting your gaming enviroment from cheaters.
User avatar

Joined: Jan 01, 2003
Posts: 1328
Location: Hell
This is my first actual tutorial, a work in progress over the last several months. Some of you might remember that discussion on creating an anti-cheat for Tribes 2 as serverside. I have tried, unsucessfully, many times to create something which would be sufficiently reliable in detection and would not create false positives. As of recently I have given up on the aspect of making it 100% server side, and rather have decided to make a small client side download. While am I aware of DefenseTurret and Rodent's efforts, I am not satisfied with the reliability, resource intensiveness, and extra bloat that comes with running a DT client.

My goal became creating a lightweight anti-cheat system that could be dropped into any server, a small download for clients that would do nothing on non-anticheat enabled servers, but would do a nearly foolproof detection of the cheats used in Tribes 2. Another goal, since this would require a client side download, was to prevent any changes to emulate the nature of the server-client communications in efforts to bypass the detection.

This is primarly focused to all the UltraXLers who were around during the RSA clan cheating incidents(use of HM2 in regular play to gain an advantage over other players) and the following evening of the playing field done by myself, and the following increase in the use of this hackpack across Tribes 2. I made a significant miscalculation in how far I was in creating a server side anti-cheat; insufficient testing and a bit of bad data made me thing I was closer then I actually was, ultimately leading to a dead end I didn't anticipate.

With the relaxed requirement of creating a client side download I have been able to develop a 100% effective countermeasure against HM2. I am prepared today to release a proof of concept to settle any doubts about my intentions. This is a public beta designed to show it is indeed possible, and can be implemented on any currently running server, usually without any compatability issues. It has not gone though the refining that the initial player targetted release will go though, there are a couple things half implemented, but the barebones are ready.

The beta is set to expire(it will cease working) 2 weeks from the 29th of Febuary, 2004 on March 21st 2004. It is specifically designed as proof of concept. Release version will be completely self functional. Configuration will be minimal, global cheat ban system will be implemented, both the client and server pieces will automatically update as needed. The goal of this anti-cheat being to be minimal hassle, maximum transparency, and forget it once it is installed.

Implemented in this beta proof-of-concept release are: authentication, forced to be stuck in observer unless authenticated, HM2 detection alert, and auto boot and 60 minute ban from server.

Anyway, on to the tutorial:
For server operators:
1) Download FFT2AC_SS.vl2 from ftp://absolous.no-ip.com/FFT2AC_SS.vl2.
2) Place it in Tribes2\GameData\{mod directory}\ and launch server as usual. As soon as all the scripts are loaded you will get a set of messages in red text starting with "FFT2AC:" and a couple informational messages.

For players:
1) Download FFT2AC_CS.vl2 from ftp://absolous.no-ip.com/FFT2AC_CS.vl2.
2) Place it in Tribes2\GameData\base\ and play as usual. You will now be able to play on protected servers.

I would like to note that this is an ongoing work in progress still in development stages, but this is fully functional in respects of the implemented aspects.

_________________
Image


Top
 Profile WWW  
 
PostPosted: Mon Mar 08, 2004 9:55 pm
User avatar

Joined: Sep 23, 2003
Posts: 1229
Location: 127.0.0.1
for dates you can use the formattimestring function as opposed to the old time script...

_________________
We are the dead.


Top
 Profile WWW  
 
PostPosted: Mon Mar 08, 2004 10:10 pm
User avatar

Joined: Jan 01, 2003
Posts: 1328
Location: Hell
Is that part of the game or a support pack?

_________________
Image


Top
 Profile WWW  
 
PostPosted: Mon Mar 08, 2004 10:34 pm
User avatar

Joined: Sep 23, 2003
Posts: 1229
Location: 127.0.0.1
part of game since last game patch

formattimestring("Format");

ex:

formattimestring("hh-nn-ss");

anyways you can find info on command in the updates.txt (or whatever) in your tribes2/gamedata directory.



btw i'm trying to counter your script and havent got any luck so far, currently recompiling hm2 with different input locations and console script execution locations... thinking of doing something with the dso'ed functions instead...

_________________
We are the dead.


Top
 Profile WWW  
 
PostPosted: Mon Mar 08, 2004 11:01 pm
User avatar

Joined: Jan 01, 2003
Posts: 1328
Location: Hell
Well, I couldn't make it easy could I? The method I use for detection is based off of extensive looks at the HM2 source code and quite a bit of testing. You could try to disable the functions I use from the DSOs, but you might run into problems with maintaining the authenticated status with the server. I spent over 2 weeks making this code very very difficult to disable without the function source. It isn't exactly impossible(though I could make it that way), but that is one of the reasons there is a forced update cycle in this beta.

_________________
Image


Top
 Profile WWW  
 
PostPosted: Mon Mar 08, 2004 11:29 pm
User avatar

Joined: Sep 23, 2003
Posts: 1229
Location: 127.0.0.1
its quite frustrating to see the code so simple yet the process so complex lol.

basically my prognosis is this: this anti-hack will work 100% against those lame noobs who just download the thing expecting to use it with no knowledge of how it works. it will work 98% against people who knows how to script. it will work 95% against people who can manipulate source code and know about t2 memory locations.

_________________
We are the dead.


Top
 Profile WWW  
 
PostPosted: Mon Mar 08, 2004 11:29 pm
User avatar

Joined: Oct 23, 2003
Posts: 1515
Location: Here
How?

_________________
AI: 010000010111001001110100011010010110011001101001011000110110100101100001011011
000010000001001001011011100111010001100101011011000110110001101001011001110110
0101011011100110001101100101


Top
 Profile  
 
PostPosted: Tue Mar 09, 2004 12:40 am
User avatar

Joined: Sep 23, 2003
Posts: 1229
Location: 127.0.0.1
okay after an hour of random typing i figured out 3 auth related numbers...

1.95164 * 10^11
441774
1.32532 * 10^6

which happens to be serverkey, serverkey2, and serverkey3
serverkey2 i figured out quite simply by doing the square root of serverkey value which i figured out by makign a package that echos serverkey. i did square root because it says square root in the dso so i thought to randomly try something :lol:

serverkey3 i figured out through a bit of dso modification...

this thing seems to check whether you have a hack by the hm2 script files, since without hm2 loaded it still says i was using a cheat.

this thign perhaps put a value of 1.2 into $pref::visualdistancemod and then do soemthing with it, hoping that the above normal value would cause a response with hm2 fog stuff...

in addition it still do some other stuff that i didnt figure out yet...




anyways not bad for 1 hour of work eh? btw how correct am i?

_________________
We are the dead.


Top
 Profile WWW  
 
PostPosted: Tue Mar 09, 2004 1:28 am
User avatar

Joined: Jan 04, 2003
Posts: 818
Location: New Orleans
YEAH fuck RSA THE CHEATING FAGGOT CLAN! :evil: Those idiots are the reason happymod first got released. And then they had the nerve to blame the superior clan that always beat them S S A. Virus Horray4boobies Hellspawn Elvis Presly Tiki All those cheating asses forced thyth to make an anti cheat the fruit cups.

_________________
A mod is only as good as its creator.


Top
 Profile WWW  
 
PostPosted: Tue Mar 09, 2004 1:40 am
User avatar

Joined: Sep 23, 2003
Posts: 1229
Location: 127.0.0.1
you know we should really make a "rants and raves" forum...


btw thyth have you tried feeding clients false ping information? for a serverside only mode that'd throw off the autoaim.

_________________
We are the dead.


Top
 Profile WWW  
 
PostPosted: Tue Mar 09, 2004 7:37 am
User avatar

Joined: Jan 01, 2003
Posts: 1328
Location: Hell
Wow... nice job Linker. I think you are my official code breaker. Time to release version 1.1 with a bit more security and a better key mechanism.

_________________
Image


Top
 Profile WWW  
 
PostPosted: Tue Mar 09, 2004 10:11 am

Joined: Oct 13, 2003
Posts: 286
sorry but i started playing tribes2 about a year and a half after it came out... whats the hm2 thing do?


Top
 Profile  
 
PostPosted: Tue Mar 09, 2004 5:22 pm
User avatar

Joined: Jan 01, 2003
Posts: 1328
Location: Hell
HM2: HappyMod 2. A memory patching hackpack program used with Tribes 2. Features include: autoaim(not the best), adjustable fog, constantly visible IFF indicators(the little triangles above your teammates and enemies), removal of the fade effect(cloaking becomes worthless), no-whiteout effect, and modified models(pretty much just making everything VERY easy to see) using CRC spoofing.

_________________
Image


Top
 Profile WWW  
 
PostPosted: Tue Mar 09, 2004 6:39 pm
User avatar

Joined: Sep 23, 2003
Posts: 1229
Location: 127.0.0.1
okay here's a wild guess on some of the functions, taken from information i learned in the last 1.5 hours (1 hour from yesterday 30 min from today), its just a wild guess, chances are i'm not right.

function clientCmdxieserhtruof(%setting) {
$pref::visibledistanceMod = %setting;
commandtoserver('xiseerhtthgie',$pref::visibledistanceMod);
}

function servercmdxiseerhtthgie(%client,%setting) {
if (%setting == 1.2)
cheatalerted(%client); // or whatever the command is, one of those random letter ones.
}

so basically the server sends a command to the client telling it to set $pref::visibledistanceMod to 1.2. by default the engine does not allow you to use a higher than 100% visible distance so it tones it back down to 1.0 at once. so when you get the variable again to send back to the server in the other function the value would be 1.

but if hm2 was enabled it basically prevents the engine from changing the visibledistancemod value therefore the number returned will be 1.2.

if the number is greater than 1, the client is considered cheating.

Bypass methods:
1. go to the dll and change the command to send to the server to something different than it already is, causing no command to be sent back there for the person never sends a 1.2 value therefore he does not get kicked.
2. simply overwrite the clientcmdxieserhtruof with a dummy function.
3. overwrite the command making it send "1" back instead of "1.2"
4. recompile hm2.dll with fog patch disabled.

well... better luck next time...


edit: notice how this ignores your auth and key system altogether... as they say, a chain is as strong as its weakest link... and your auth system was not the weakest link...

_________________
We are the dead.


Top
 Profile WWW  
 
PostPosted: Sun Mar 21, 2004 2:30 pm

Joined: Mar 07, 2004
Posts: 38
Good work, Thyth. Looking forward to more releases. I've always despised cheaters, and they wouldn't ever understand why . . .

I came in a little late on this thread, but I'd like to help test it. What do you need?


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 142 posts ]  Go to page 1, 2, 3, 4, 5 ... 10  Next

All times are UTC - 5 hours


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum


Search for:
Jump to: