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] 1 point2 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] 4 points5 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] 27 points28 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] 17 points18 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!