gimkit-bot icon indicating copy to clipboard operation
gimkit-bot copied to clipboard

Players Kicked due to rapid answering, selector errors

Open floppian opened this issue 5 years ago • 32 comments

Now that Gimkit placed this filter - almost all of the hacks on Github have failed to work. This filter checks your progress over the questions and your speed.

floppian avatar Jan 13 '20 13:01 floppian

do you know what the threshold is, like how fast can we answer questions and still fly under the radar?

ObviousNoise avatar Apr 28 '20 20:04 ObviousNoise

I haven't been putting much effort into maintaining this project, so no, I am not aware of what the limit is, and even if I was, it can always change. You can iteratively increase the delays to figure out what the limit is, and (hopefully) submit a PR incorporating the increased delays.

On Tue, Apr 28, 2020, 4:51 PM ObviousNoise [email protected] wrote:

do you know what the threshold is, like how fast can we answer questions and still fly under the radar?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/ecc521/gimkit-bot/issues/8#issuecomment-620847874, or unsubscribe https://github.com/notifications/unsubscribe-auth/AKDVOG4YWUTRR2PH5TWXVVDRO46V5ANCNFSM4KGCDDVQ .

ecc521 avatar Apr 29 '20 19:04 ecc521

I'm going to take another look at this and see if adjusting the delays works. As stated previously, any help on this project would be extremely useful.

ecc521 avatar May 16 '20 22:05 ecc521

Simply pasting the bot code into the console and doing nothing triggers this message. It must be a targeted detection system that is easy to bypass.

It is likely that there are two systems here - the one that tracks rate of progress, and a specific one for this bot, detecting our global declarations.

ecc521 avatar May 16 '20 22:05 ecc521

We should be able to use an IIFE to prevent this issue. Preliminary changes seem to work, however the bot is not fully functional. Currently I am having trouble with the GimKit website, with it causing my CPU to spin at full speed.

ecc521 avatar May 16 '20 22:05 ecc521

Screen Shot 2020-05-17 at 8 08 27 AM They track "Exploit" from SnowLord's script, and "clickElement" from yours.

If you want to solve the issue, wrap the entire code inside of a

(function() {
//Insertcode
// All variables will stay local
})()

floppian avatar May 17 '20 12:05 floppian

I believe zr is kind of like sendPacket and Ht.redboat is the redboat packet type which will be sent to the server so that the server can kick. This hack checker loop occurs every 10 seconds, on a setInterval loop. The .post you see above tracks this data:

{
  r: "clickElement", // script type
  n: "name", // will appear as "" if not ingame
  s: "classic" // type of gamemode
}

floppian avatar May 17 '20 12:05 floppian

As for the rate limiting thing inside of the server, just click one answer wrong every 10 times or so, that should solve it.

floppian avatar May 17 '20 12:05 floppian

The IIFE fix had already been implemented into a separate branch, around the time of my previous comment. Those changes are being merged now.

There were some additional issues given our use of the DevTools API, so your proposed fix would not have worked exactly as prescribed.

ecc521 avatar May 17 '20 15:05 ecc521

It looks like GimKit has changed some design aspects, as I am encountering errors in the script. I'll need to do a few more fixes before I can figure out what is going on with the rate limiting.

ecc521 avatar May 17 '20 16:05 ecc521

Sounds great, I'm going to release a PR to neaten up the code and fix some minor bugs later today aswell

floppian avatar May 17 '20 17:05 floppian

I am no longer receiving the cheating detected message, however am receiving the "Answering too quickly". Luckily, there is a big difference in how the two are handled by GimKit.

The IIFE is really annoying from a debugging point of view. No good way around that though.

I can confirm that the CSS selectors need to be adjusted. The current ones are broken.

ecc521 avatar May 17 '20 19:05 ecc521

I think there might be a way, let me just double check something

floppian avatar May 17 '20 19:05 floppian

Something like this would work.

Object.defineProperty(window,"clickElement", {
    get: ()=> false,
    set: function(selector) { // Parameters could be expanded with ...{objects}
        document.querySelector(selector).click();
        this.value = false; // I don't know if this is necessary
    }
})

When Gimkit checks if it is set by typing something like window["clickElement"] they will get false - therefore unset, but you could call the function by actually setting it. Weird idea, but it would work. window.clickElement = "#type"

floppian avatar May 17 '20 19:05 floppian

Fancy idea, but I'd rather not. GimKit could change their code to detect this, as they did previously. An IIFE is much better.

On Sun, May 17, 2020, 3:38 PM FloppyT [email protected] wrote:

Something like this would work.

Object.defineProperty(window,"clickElement", { get: ()=> false, set: function(selector) { document.querySelector(selector).click(); this.value = false; // I don't know if this is necessary }})

When Gimkit checks if it is set by typing something like window["clickElement"] they will get false - therefore unset, but you could call the function by actually setting it. Weird idea, but it would work.

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/ecc521/gimkit-bot/issues/8#issuecomment-629849353, or unsubscribe https://github.com/notifications/unsubscribe-auth/AKDVOG7VIVKSLLSJ5OVPLLLRSA4MFANCNFSM4KGCDDVQ .

ecc521 avatar May 17 '20 19:05 ecc521

UPDATE: GimKit has started dropping perma-bans on IP Addresses, including mine, which has made development work quite difficult. I do not expect this to last very long however, as many schools utilize shared devices, where a single ban could easily impact large numbers of users and cause havoc.

ecc521 avatar May 17 '20 21:05 ecc521

Reset your IP, I can walk you through that if you dont know how

Edit: spelling

ObviousNoise avatar May 17 '20 21:05 ObviousNoise

I'm probably going to end up using a VPN. Getting public IPs reassigned is ISP dependent. What were you going to say?

As I said, I suspect this is going to slowly build up as an issue for GimKit. Perma-banning IPs is absolutely the wrong move in this context. Alert the teacher and let them make the choice.

ecc521 avatar May 17 '20 21:05 ecc521

Well, they are most likely dropping these bans because they don't want to deal with this annoying stuff, they are working on a new thing called Ink apparently - so they are probably busy with that.

The SS I shared with you is how they got your IP...

floppian avatar May 17 '20 21:05 floppian

The SS? Screen Shot? That is a GitHub URL. I suspect it has to be related to triggering these "Cheating Detected" and similar things an awful lot.

Easy solution to this is to walk into the front office of a school, ask for WIFI info, join WIFI, and get their whole network perma-banned from GimKit. Repeat, and GimKit will be forced to lift these.

ecc521 avatar May 17 '20 21:05 ecc521

Above I thought I sent a screen shot of the code where they log your IP... Ill resend. Also, what does it show when you got IP Banned? Could you show a picture? or does it just not connect?

floppian avatar May 17 '20 21:05 floppian

Screen Shot 2020-05-17 at 5 40 40 PM

ecc521 avatar May 17 '20 21:05 ecc521

Any IP logging and banning would be server side. I can confirm this.

ecc521 avatar May 17 '20 21:05 ecc521

Ok, and I think here is where they log your ip

IMG Link I think it is that request

floppian avatar May 17 '20 21:05 floppian

No. There is no reason to IP log client side. They know your IP on the server.

ecc521 avatar May 17 '20 21:05 ecc521

I agree, that is what I meant, that is the section of the code that sends off an alert though. They would probably use both Redboat and the request to log you and your ip onto a database.

floppian avatar May 17 '20 21:05 floppian

Whatever they do with IP logging, we can do nothing about it. All we can do is fix the bot so it doesn't get users kicked (which probably triggers bans), and put a bit of pressure on them to remove this.

ecc521 avatar May 17 '20 21:05 ecc521

There are always ways, but I believe what I've been saying along, bots are going to have to get weaker.

floppian avatar May 17 '20 21:05 floppian

The last two actions I have seen from them are going to be painful. For them. Answer rate limiting has kicked out many legitimate players, and this is going to cause absolutely havoc when an entire school gets banned.

Yes, bots will get weaker. But the only way to remove the advantage of bots is to make everyone the same. And that would destroy the entire game.

It is going to take a while before the impact of this change is felt. But I'm confident it will be.

ecc521 avatar May 17 '20 21:05 ecc521

Um what? lmfao. They say you're permanently banned from playing games, but there's a button to join a new game.

YodaLightsabr avatar Feb 25 '21 22:02 YodaLightsabr