1. 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?
     
  2. Wulf

    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.
     
  3. Well that's out of my scope so hopefully someone will make one down the road. Also, there appears to be another duplication exploit/hack. Just found a guy with 5 million stones and only only for five minutes lol
     
  4. Wulf

    Wulf Community Admin

    I've moved it to Requests, maybe someone will take on the task. ;)
     
  5. This might be a good addition to R-AntiCheat by @Reneb if he gets the time.
     
  6. yep i'll look into it ^^, but can't look into it atm
     
  7. 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 :)
     
  8. Sounds like a brilliant idea for a plugin :)
     
  9. following
     
  10. Definitely keen for this!
     
  11. 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 ?
     
  12. I think we need a hook like "OnCodeLockAttept" something like that ..
     
  13. X2, I looked at the decompiled code and found the place where the code is checked but there isn't much we can do without a hook. I suppose one could try and rewrite the class and replace all codelocks by the new class, but I don't know if this would work at all.

    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?
     
  14. Wulf

    Wulf Community Admin

    You can already do it with CanUseDoor, just check and count.
    [DOUBLEPOST=1434941627][/DOUBLEPOST]
    See above.
     
  15. 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 assume here the CanOpenDoor hook hooks the OnTryToOpen function, not the UnlockWithCode function. Anyone can confirm?

    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.
     
  16. I think hooking UnlockWithCode is the best way to do this. I think we'd need it integrated into oxide, though.
     
  17. Not only is this thread pretty old, but you already get shocked and take more damage the more times you fail to get the right code in the game itself.
     
  18. Brute force even work after you have died the way they do it
     
  19. I am aware the thread is old. The hook is still needed.

    Brute forcing is fixed, but I have caught hackers bypassing locks. I have no idea how, which is why I need the lock hook.
     
  20. auto eat function if you have food or other items so you can make the brute code script do that . it will make your character eat so it does not die
    but the function sucks and takes allot more time to brute force it