Advertisement
Aimbot detection
#3
Posted 15 August 2011 - 04:35 AM
Really depends how it's written. If it's purely based on logs- and hit messages. Yeah, that will be flawed.
But if it's based on in-game data, where you can see or the target was moving or not. Than such system might be usable for indication when someone is scoring out of bound statistics. E.G. target is moving at > 700 units sideways from the shooter at 8 o'clock (behind left, so actually no previous line-of-sight) of the shooter. Shooter hits the target shooting 4 bullets which 3 of them hits. Have such scenario repeating itself in short time frame and it's obviously someone is using auto-shoot/aimbot.
But such system would be complex if you wanted to do it right.
But if it's based on in-game data, where you can see or the target was moving or not. Than such system might be usable for indication when someone is scoring out of bound statistics. E.G. target is moving at > 700 units sideways from the shooter at 8 o'clock (behind left, so actually no previous line-of-sight) of the shooter. Shooter hits the target shooting 4 bullets which 3 of them hits. Have such scenario repeating itself in short time frame and it's obviously someone is using auto-shoot/aimbot.
But such system would be complex if you wanted to do it right.
#4
Posted 15 August 2011 - 04:35 AM
majkifajki, on 15 August 2011 - 12:14 AM, said:
Friend of mine told me a story, that it's not hard to write a program, that would collect information about hitting targets and judge, that player is using aimbot or not.
Is this has any sense or it's just amateur approach?
Is this has any sense or it's just amateur approach?
Something tells me if it was this easy it would have been done years ago multiple times by a few different people.
Sorry, Caps-Lock broke there for a minute.
Spoiler
#5
Posted 15 August 2011 - 07:13 AM
A.K.A. [idgaf.]Face(Clan Leader)
Advertisement
#6
Posted 15 August 2011 - 05:51 PM
Fallen2, on 15 August 2011 - 03:53 AM, said:
So... If i connect, and there is a afk player, and i just shoot him in the head alot i get banned?
Write an algorithm that would detect where the players x,y,z locations are, timing of movement and precision of hits..Then compare..
$x = location_x;
$y = location_y;
$z = location_z;
$location = array($x,$y,$z);
$lastkill = this_kill - last_kill
$accuracy = fired_vs_hits //Percentage
$buffer_array = ($location, $lastkill, $accuracy) * 5 //Infering 5 iterations.
if(buffer->stats < 20){
ban->client($client_id)
}
Something like that, but I have to go and get back to work.. It's nowhere near a working model, but its feasible
#8
Posted 15 August 2011 - 11:00 PM
sounds that there would be millions of false-positives.
[img]http://i.imgur.com/kweKQ.png[/img]
#9
Posted 16 August 2011 - 03:49 AM
flajaz, on 15 August 2011 - 11:00 PM, said:
sounds that there would be millions of false-positives.
That's why you also use a location to location numerical system as well.
This way the code would interpret the movements much like the human mind.
Though my code above is PURELY example.. it is very possible to do this.
You just need to include several sets of data so as to not get false-positives. Like shooting at a person that is standing still a hundred times in a row. Create a function that would buffer or cache the movements in a numerical sequence of each client. Then compare the data across the 2 for x amount of times to verify it's the validity of the player.
It's all math. Similar to calculating the speed of an object by measuring the time it took to go a certain distance. Similar concept... just a few more variables. Though it's easy to conceptualize, one must put the code to work .. and efficiently. That way it doesn't slow down server response time or fill your RAM with more useless cache. Though then again.. theoretically, you could cache in the RAM because we are literally only talking about bytes of data... Measure 32 (players) * 5 (Stored variables(for instance)). depending if the digit is 1 to 4 bytes long so 4 * 5 = 20. So 20, in this instance would be the maximum cached bytes for each player. So 20 * 32 = 640 bytes or .625 kb stored info.. < 1 mb. of course, you also need to include additional functions that always have to operate. Functions to collect data and others to parse the info and call a ban function if needed. I wouldn't see more than a few additional Mb commit to RAM maximum. Even if you increase the amount of variables needed for caching thereby increasing the overall cache size.
Anyways.. I'm rambling.. I should just say YES it is possible :D
P.s. Just ask yourself a very simple question... How do YOU know someone is aimbotting? Use those same variables that you use as a human and put them to words (code)
This post has been edited by Pussnboots: 16 August 2011 - 03:57 AM
1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users
Advertisement