I had some South American players doing some type brute force hack that could get the code to any door in like 2 minutes. It literally sounds like a minigun of key types. Anyone experience this and how do I prevent this from happening?
Rust Keypad brute force prevention
Discussion in 'Plugin Requests' started by t3h28, Apr 29, 2015.
-
Wulf Community Admin
The only way you could prevent it is to write a plugin that limits code entries, and kicks/bans after X amount of invalid codes.
-
-
Wulf Community Admin
-
This might be a good addition to R-AntiCheat by @Reneb if he gets the time.
-
yep i'll look into it ^^, but can't look into it atm
-
Just wanted to voice my support for this. We've had several users (including myself) fall victim to this on my server. Thank you whoever gets time to look into it
-
Sounds like a brilliant idea for a plugin
-
following
-
Definitely keen for this!
-
cant you just do it so after 3 attemts you have to wait 5min. and if you fail again you have to wait 15min and so on
Just like a phone ? -
-
I wanted to make a quick mod for this but I just don't see how I could without a hook... and I don't know how the hooks are programmed.. I assume the Oxide team decompiles one of the game files, adds the hooks and recompiles it, replacing the original? Or is there a way we can create our own hooks? -
Wulf Community Admin
[DOUBLEPOST=1434941627][/DOUBLEPOST] -
I might be wrong Wulf, but looking at the decompiled code these events are tied to the door itself, not the lock. The brute force hacks are attacking the code lock itself, not the door. This hook/event just tells you if the door is unlocked for the player (if I understand right). The way I see it, this is what happens (pseudo-code of the hack):
Code:for (int i= 0; i < 10000; i++) Door.CodeLock.UnlockWithCode(i); // tries to unlock the door Door.CodeLock.OnTryToOpen(); // actually opens the already unlocked door
I should probably stop typing and go try it hehe, brb
[DOUBLEPOST=1434946453][/DOUBLEPOST]Confirmed, the hook is called when the player tries to open the door, NOT when the code is being entered/tried.
Only way I see would be to hook on OnPlayerInput and look for a constant and rapid click/unclick succession. If this goes on for a few seconds at a very high frequency followed by a CanOpenDoor within seconds, you could assume it's a hack attempt at a codelock. Not a very clean way to do it though and would be prone to false positives for sure. -
I think hooking UnlockWithCode is the best way to do this. I think we'd need it integrated into oxide, though.
-
-
Brute force even work after you have died the way they do it
-
Brute forcing is fixed, but I have caught hackers bypassing locks. I have no idea how, which is why I need the lock hook. -
but the function sucks and takes allot more time to brute force it