Antibot System for 5095?

10/21/2010 08:41 oten681#1
Hey guys, I have a pretty important question. I've been looking around the releases area and can't seem to find an anti bot for 5095, just for 5165. I want an anti bot system kind of like TQ's which will auto botjail people if they are using a speed hack or other types of macros/bots. Is this even possible? If not can someone show me what would be a solution that's closest to what I'm looking for? Once again server version is 5095.

Thanks very much in advance,
Chris
10/21/2010 09:26 ryuchetval#2
you can easily convert the 5165 one to 5095...as long as it's c#
10/21/2010 09:48 oten681#3
Is the 5165 source for the botjail an automatic botjail? Because it didnt say anything if it was manual jailed or auto...
10/21/2010 09:49 pro4never#4
Aimbots are hard to check for really...


Client side bot scanning built into your loader is always an option (but you have to be careful to ensure that A: it is REQUIRED to be used before you can log in and that you have it obfuscated properly to avoid people cracking it). Other then that the most effective way to check for aimbots is simply having active moderators/gm's who can record, give out warnings or botjail/ban people who hack.

Speedhacks are far simpler. Run a timestamp + Datetime check when receiving player movements.

NOTE: I suggest timestamps in adition to datetimes because you will have a hard time running a system based on only one. If you use a timestamp based system the user could use a proxy with a timestamp based speedhack system (boosting timestamp to make the server think it took 5 minutes to cross a map when in reality it took 5 seconds)

So yah... check when last jump datetime was vs current datetime... check timestamp vs last jump timestamp... use that to kick/warn players and log the abuse. if it continues then ban them (Do NOT do a single warning system as you WILL get false positives with most speedhack systems from time to time)

Same with walking.. personally what I did was recorded steps over a few second period and allowed a maximum of X steps over that period of time. That way I wasn't limiting myself to a single step or two (which is NOT a good idea again as timing will be off. ) If they walk 2 steps within X ms you are a lot less accurate than if you calculate 10 steps within X ms * 5.


Again... datetime + possibly timestamp is the best bet here.
10/21/2010 17:58 _DreadNought_#5
Speedhack - Check if they do 2-3 jumps in x milliseconds
AimBot - ^^
Memory Injecting bots - Not telling what I know
10/21/2010 19:44 oten681#6
pro4never could you elaborate more on the datetime and timestamp check on how I could set that up? Im more interested in trying to reduce speedhacks then actual bots... For those the GM idea sounds plausible. And thanks very much for that reply, +thanked!
10/21/2010 19:54 Fish*#7
DateTime jump = DateTime.Now;
10/21/2010 21:47 oten681#8
Thanks fish for the command, but I have no idea where to put it... Can you tell me like exactly what to put and where to put it in a 5095 source?
10/21/2010 22:09 _DreadNought_#9
No. Do it yourself ^ add it in the jump bit.

#edit
I just told you. :facepalm: myself. LOL
10/21/2010 22:10 Fish*#10
#removed
10/21/2010 22:13 pro4never#11
*sigh* when the player jumps check when the last time they jumped was and if successful reset the last time they jumped.

eg: Char.Cs DateTime LastJump = DateTime.Now;

in jump handling.

If (DateTime.Now < C.Client.LastJump.AddMilliseconds(W/eJumpSpeed))
send them back to old location
return;
else
execute jump
C.Client.LastJump = DateTime.Now;

Also the client automatically sends a timestamp in most of its packets which you can use to calculate things also (combining them is the most accurate way of doing things)
10/21/2010 22:53 oten681#12
Thanks for that pro4never... I don't know C# one bit so I'll try this out and get back to you :) (+Thanked)