| Advanced Mod Forums http://advancedmod.com/forums/ |
|
| Protecting your gaming enviroment from cheaters. http://advancedmod.com/forums/viewtopic.php?f=1&t=1969 |
Page 1 of 10 |
| Author: | Thyth [ Mon Mar 08, 2004 7:33 pm ] |
| Post subject: | Protecting your gaming enviroment from cheaters. |
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. |
|
| Author: | Linker [ Mon Mar 08, 2004 9:55 pm ] |
| Post subject: | |
for dates you can use the formattimestring function as opposed to the old time script... |
|
| Author: | Thyth [ Mon Mar 08, 2004 10:10 pm ] |
| Post subject: | |
Is that part of the game or a support pack? |
|
| Author: | Linker [ Mon Mar 08, 2004 10:34 pm ] |
| Post subject: | |
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... |
|
| Author: | Thyth [ Mon Mar 08, 2004 11:01 pm ] |
| Post subject: | |
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. |
|
| Author: | Linker [ Mon Mar 08, 2004 11:29 pm ] |
| Post subject: | |
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. |
|
| Author: | Mr Murry [ Mon Mar 08, 2004 11:29 pm ] |
| Post subject: | |
How? |
|
| Author: | Linker [ Tue Mar 09, 2004 12:40 am ] |
| Post subject: | |
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 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? |
|
| Author: | Razer [ Tue Mar 09, 2004 1:28 am ] |
| Post subject: | |
YEAH fuck RSA THE CHEATING FAGGOT CLAN! |
|
| Author: | Linker [ Tue Mar 09, 2004 1:40 am ] |
| Post subject: | |
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. |
|
| Author: | Thyth [ Tue Mar 09, 2004 7:37 am ] |
| Post subject: | |
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. |
|
| Author: | strung [ Tue Mar 09, 2004 10:11 am ] |
| Post subject: | |
sorry but i started playing tribes2 about a year and a half after it came out... whats the hm2 thing do? |
|
| Author: | Thyth [ Tue Mar 09, 2004 5:22 pm ] |
| Post subject: | |
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. |
|
| Author: | Linker [ Tue Mar 09, 2004 6:39 pm ] |
| Post subject: | |
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... |
|
| Author: | Rhun Draco [ Sun Mar 21, 2004 2:30 pm ] |
| Post subject: | |
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? |
|
| Page 1 of 10 | All times are UTC - 5 hours |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|