Jump to content

Ban Theory by Gnomedesto


Gnomedesto

Recommended Posts

Ever been banned? Banned even using the most premium of scripts? Banned while only botting for a couple hours? Well, I have a theory as to how JaGex is distinguishing humans from bots apart from injection. Before I go further, let me brief you on something most programmers know and most others don't.

 

Let's say you're cutting maple logs at Seers. The moment that tree is cut down, I have a feeling JaGex takes note of the time that action was completed as such:

2ivy8tc.jpg

21:59:46: Your tree was cut down. (completed action)

 

JaGex may also take note of the time you begin your next action and what it does.

Then you click on the next tree available, or in this case, the same tree after it respawns:

2wgvozo.jpg

22:00:16 Player begins cutting another tree. (new action initiated)

 

We find that the difference in time the action was complete and the next action was initiated is 30 seconds (21:59:46 + 00:00:30 = 22:00:16). 

 

Imagine doing this for hundreds of hours and that difference between completed action and next action is ALWAYS 30 seconds. Pretty predictable and bot-like, wouldn't you say?

 

To counter this, most programmers would know to wait a random duration after the completed action before starting the next one. The code in bot scripts have something along the lines of "Sleep(1-6);". What this entails is the bot to wait anywhere from 1 second to 6 seconds before starting the next action.

 

In theory, this would make it harder for JaGex to spot a pattern; however, it's just as easy to spot a bot-like pattern.

 

Throw a 6 sided dice 100 times. What's the probability that 1 was rolled? It'll be roughly the same as 2, 3, 4, 5, and 6 (~0.17 x 100 = ~17% chance for a number to be rolled)

2cehi0.jpg

 

As expected because rolling a dice should be random. The probability of each face of that dice should be the same as the next face of that dice. Nonetheless, human behavior is not nearly as related to the randomness of throwing a dice. 

 

Humans are inclined to lean a particular way. So when it comes to time between completing tasks and beginning another, it's not going to look like the graph of 100 dice rolls. It may look more like this:

2wr42f5.jpg

 

All while the graph of a bot might look like this:

2ij2636.jpg

 

I'm not much of a programmer myself, but this theory does have some merit to it. If you can add to this, please do so below. If you think this is a bad theory, please let me know why. Also, let me know what you think JaGex does to distinguish humans from bots.

 

 

 

What's the fix? How do you program "human behavior" into code? That's difficult; however, there may be an easy, temporary solution. Random numbers in the Java code currently are thrown through a Math method called a random number generator. Perhaps we could roll 2 dice instead of one and get something that looks a little more human-like: 

29o5rub.png

 

 

 

Edited by Gnomedesto
  • Like 9
Link to comment
Share on other sites

Interesting theory, but does this only apply to skills such as woodcutting, fishing, ect..?

I think it can be anything as long as there's a enough instances of the same completed action followed by the same next action. Because JaGex couldn't base it off one trial, they'd have to see hundreds of these occurances to call it evidence. Could be as simple as climbing down a ladder (completed action) followed by clicking somewhere on the minimap (next action).

Edited by boatsb4hose
  • Like 1
Link to comment
Share on other sites

I agree with what you're saying. I think a major contributing factor to this is people's desire to get max exp gains while botting. If a script operates at anything under maximum efficiency people throw a shit fit. Realistically it would not be difficult to develop "profiles" that switch every so often in a script to simulate things like a human becoming bored, thus having slower reaction times, a human becoming more focused and thus having faster reaction times etc. However as I stated people would bitch non-stop about not getting the most xp/ph possible, even though their account would likely be significantly safer.

  • Like 2
Link to comment
Share on other sites

I agree with what you're saying. I think a major contributing factor to this is people's desire to get max exp gains while botting. If a script operates at anything under maximum efficiency people throw a shit fit. Realistically it would not be difficult to develop "profiles" that switch every so often in a script to simulate things like a human becoming bored, thus having slower reaction times, a human becoming more focused and thus having faster reaction times etc. However as I stated people would bitch non-stop about not getting the most xp/ph possible, even though their account would likely be significantly safer.

Amen.

Link to comment
Share on other sites

This is a very interesting theory and with what you have shown it may well be a probability. I think this could be one of many ways in which Jagex is catching us out. As Molly said people are more interested in efficiency instead of safety which means people want to purchase scripts with maximum xp/profit per hour. There was a hunch about client injection and with the introduction of mirror mode it seems that theory of detection was correct and ban rates have gone down significantly. Hopefully we will be able to carry on tackling these theories and further getting the upper hand!

  • Like 1
Link to comment
Share on other sites

Not a programmer, but why wouldn't Sleep(1-6); prevent this?

prevent what, I must ask? I'll try to answer what I think you're getting at. A random sleep generator anywhere from 1 second to 6 seconds will generate anything between those two numbers. Over a long time, the graph it creates looks just like the graph of 100 dice rolls. It looks bot-like and produces a predictable graph that can be profiled to what other botter's graphs look like.

Edited by boatsb4hose
Link to comment
Share on other sites

Not a programmer, but why wouldn't Sleep(1-6); prevent this?

 

Because sleep 1-6 over a period of time is still just a period of 1-6. A human might have a random say "15" or "28" or something. If you ran a bot for 12 hours and during that whole time there was only a sleep period of 1-6 that's quite unrealistic. See what I'm saying?

Link to comment
Share on other sites

Not a programmer, but why wouldn't Sleep(1-6); prevent this?

 A pattern would be formed over long periods of time. If the reaction time of 1000 different players over many hours of game play, say woodcutting yews, was always between 1 and 6 seconds it would be suspicious. Humans don't typically play this way, for example when I woodcut I sometimes focus, I sometimes don't. Sometimes I'm studying hard and react slower to the game, sometimes I'm reacting faster to the game. If Jagex were to collect data on me woodcutting for 10 hours they would notice the inconsistency and assume I'm human. If however I bot those 10 hours and always react to a tree spawning within a 1-6 second time frame it becomes pretty obvious that I might be botting.

 

To add to this: Now imagine this data being stored and used to track patterns of scripts, which is then compared to players suspected of botting. It becomes pretty easy to detect and ban bots at that point.

Edited by Molly
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...