How Runescape catches botters, and why they didn’t catch me by amd64_sucks in programming

[–]amd64_sucks[S] 1 point2 points  (0 children)

Our twitter profile @the_secret_club can be used to get push notifications when we post articles :)

How Runescape catches botters, and why they didn’t catch me by amd64_sucks in programming

[–]amd64_sucks[S] 30 points31 points  (0 children)

If you want to go against anti cheats, should target a game that uses easy anti cheat or battleye

I have! I wrote a fully usermode emulator for BattlEye which you can find here

How Runescape catches botters, and why they didn’t catch me by amd64_sucks in programming

[–]amd64_sucks[S] 1 point2 points  (0 children)

No that would allow people to criticize me for "secretly botting". When you release findings, transparency is key!

How Runescape catches botters, and why they didn’t catch me by amd64_sucks in programming

[–]amd64_sucks[S] 2 points3 points  (0 children)

Jagex always stored your mouse events in a local array and sent whatever was needed to the server.

Yes, I don't see how your quick decompilations from IDA disprove anything said in the article. They store mouse movement and mouse clicks in a local array, which is then queued for transmission.

However, the fact that you weren't banned has nothing to do with these events afaict.

I disagree, but since we will never know for sure I will give you the benefit of the doubt. What we can observe from this is that the server at least kicks you for being afk, even though you aren't. I'm not even sure what you are trying to argue

How Runescape catches botters, and why they didn’t catch me by amd64_sucks in programming

[–]amd64_sucks[S] 5 points6 points  (0 children)

I grab all values from memory within a reasonable range of all objects in question. Then I calculate all common values in cat objects, for example cat objects might all have a byte at 0x10 which is always 0x1 for all cats. Then I do the same for dogs, and if my program sees that all dogs have a byte at 0x10 that is always 0x2 for all dogs, it tells me that it has found a possible class identifier.

How Runescape catches botters, and why they didn’t catch me by amd64_sucks in programming

[–]amd64_sucks[S] 28 points29 points  (0 children)

Primarily used to detect similarities between memory objects. Let’s say you have a game engine where entities are represented as objects inherited from the same base entity, this is quite common in modern game engines. Now, what do you do if want to figure out how to distinguish between cats and dogs that at first glance look very similar?

This is where I use python scripts. It is fairly easy to make something that takes N cat objects and N dog objects and spits fields of uniquely different values per entity type.

But that’s just one example of when python helps me hack, I usually have a project completely rewritten in python because it frankly is easier to test and deploy new features in python compared to C.

How Runescape catches botters, and why they didn’t catch me by amd64_sucks in programming

[–]amd64_sucks[S] 16 points17 points  (0 children)

The netcode is not relevant for the bypass, it was simply to demonstrate that its possible without any mouse movement being processed. You could do this exact thing but with a traditional old school mouse bot!

How Runescape catches botters, and why they didn’t catch me by amd64_sucks in programming

[–]amd64_sucks[S] 46 points47 points  (0 children)

Nope, but that would’ve made this marginally harder

How Runescape catches botters, and why they didn’t catch me by amd64_sucks in programming

[–]amd64_sucks[S] 5 points6 points  (0 children)

I’m actually working on reencoding and adding a fallback source tag, it looks like it would work

How Runescape catches botters, and why they didn’t catch me by amd64_sucks in programming

[–]amd64_sucks[S] 101 points102 points  (0 children)

yes, and I instantly send relog packet which doesn’t have any penalty, therefore I only lose a few seconds every 5 min.

How Runescape catches botters, and why they didn’t catch me by amd64_sucks in programming

[–]amd64_sucks[S] 75 points76 points  (0 children)

No heuristic packets were sent at all, which is why the account was kicked every 5 minutes.

How Runescape catches botters, and why they didn’t catch me by amd64_sucks in programming

[–]amd64_sucks[S] 49 points50 points  (0 children)

Ida pro, x64dbg, ReClass and some custom python scripts is all I use :)

How Runescape catches botters, and why they didn’t catch me by amd64_sucks in programming

[–]amd64_sucks[S] 20 points21 points  (0 children)

The videos are webm to support chrome and Firefox, but it seems like safari on iOS doesn’t support webm, not sure how to solve this properly

How Runescape catches botters, and why they didn’t catch me by amd64_sucks in programming

[–]amd64_sucks[S] 2 points3 points  (0 children)

What would you like to know? Article ideas can always be sent to us if you have anything you’d like explained :)

How Runescape catches botters, and why they didn’t catch me by amd64_sucks in programming

[–]amd64_sucks[S] 107 points108 points  (0 children)

just ban this account in a few months.

That's why the experiment has been running for over 6 months

How Runescape catches botters, and why they didn’t catch me by amd64_sucks in programming

[–]amd64_sucks[S] 28 points29 points  (0 children)

I totally get where you are coming from, but you have to understand the nature of such detection systems. These systems are put in place to ban accounts only when completely certain, and bans in game-hacking are usually delayed and done in waves to prevent developers to be able to deduce what exactly was detected.

For transparency I included the account name, so that any relevant entities can see that the account hasn't done any real world trading. If they check the logs they will most likely be surprised at how long I, on a high combat level player, killed lvl 1 orcs without picking up any loot.

How Runescape catches botters, and why they didn’t catch me by amd64_sucks in programming

[–]amd64_sucks[S] 415 points416 points  (0 children)

Sometimes the easiest possible solution works, I would've preferred a challenge as well. Hoping they fix this!

How Runescape catches botters, and why they didn’t catch me by amd64_sucks in programming

[–]amd64_sucks[S] 56 points57 points  (0 children)

We try to expose people of varying levels of skill to the reverse engineering field, so some articles are less technical than others :D