thejoabo / autofishbot

Auto Fishing Bot made in Python 3 for Virtual Fisher Discord Bot.
MIT License
38 stars 26 forks source link

Beware Ban Wave #38

Closed gabeaventh closed 1 year ago

gabeaventh commented 1 year ago

image

Beware, I just got banned for no reason, without the captcha even popping out

thejoabo commented 1 year ago

Hello @gabeaventh , Maybe something related to this discussion: https://github.com/thejoabo/virtualfisher-bot/discussions/12 (?). I'm not following along with these new changes (I'm currently working on another project), so I'll be pinning this issue and linking it in the readme, so new users will be aware of using it at their own risk.

BigBroski1337 commented 1 year ago

Same for me. After using the bot for 3 days I got a 2-week ban. VF Ban

gabeaventh commented 1 year ago

Same for me. After using the bot for 3 days I got a 2-week ban.

VF Ban

the captcha appeared or not?

BigBroski1337 commented 1 year ago

No. It just instantly banned me, no CAPTCHA field or anything.

thejoabo commented 1 year ago

@BigBroski1337 , @gabeaventh Literally I have no clue whatsoever why this is happening, unfortunately I have no way to reverse engineer it since it has no executable and doesn't run in a way I can inspect whats going on. If anyone has a theory or solution I would be pleased to hear. =/

gabeaventh commented 1 year ago

i have some thoughts, i think they monitor our behavior, like how long we spent time to solve captcha, how long our play session, same session token every time we play(if I'm not mistaken, the token should refresh and replaced with new one)

the most possible one are

Long Play Session and the bot takes so much time to solve the captcha that normal human being would take 1-5 seconds to finish

id suggest try to disconnect the bot every X minutes, where X random and put Warning to not run the bot more than X hours per day to avoid Ban

i know it's not convenient, but what else we can do, we doing something againts the rules anyway

thejoabo commented 1 year ago

@gabeaventh Maybe, I mean, Discord's API is a piece of shit for larger bots nowadays (due to some security police changes) but I don't really know what type of backend info they have access (for example, other users session ids and other things). But it's true, realistically speaking this bot has nothing related to mimicking human behavior (except the cooldown - which is far from perfect). And yeah, they definitely have a huge set of data and monitor how we play.

When I was first developing it, I thought about having some serious routines to at least confuse their detection system, but It would be very annoying to someone that just want to cheat and what not. The thing is: I'd really need data to put together some strategies about how normal users play and how to emulate it. It is pointless for me to figure out how I think that users play when they can just compare it to real data and spot that something is off.

Also, I would assume that at least they are aware that this "cheat" exists and since it's opensource they can just inspect how I do things and write something specific to detect that (for example the resupply routine which happens at linear intervals). My point is: they have all the advantages they need to pinpoint who is using this bot.

About the captchas, I totally agree. I use a free API which has a decent precision and a easy way to get users with no knowledge to set it up. Unfortunately it's not fast the way it is implemented, I can assure that it will find a correct answer but it'll take time. (no idea how to make it better)

I have lots of things to update in this bot but no time to do it. I'll try to do it in this weekend, but no promises. Also, if you are interested in helping with pre-releases tests dm me at: dev.joabo@pm.me

gabeaventh commented 1 year ago

@gabeaventh Maybe, I mean, Discord's API is a piece of shit for larger bots nowadays (due to some security police changes) but I don't really know what type of backend info they have access (for example, other users session ids and other things). But it's true, realistically speaking this bot has nothing related to mimicking human behavior (except the cooldown - which is far from perfect). And yeah, they definitely have a huge set of data and monitor how we play.

When I was first developing it, I thought about having some serious routines to at least confuse their detection system, but It would be very annoying to someone that just want to cheat and what not. The thing is: I'd really need data to put together some strategies about how normal users play and how to emulate it. It is pointless for me to figure out how I think that users play when they can just compare it to real data and spot that something is off.

Also, I would assume that at least they are aware that this "cheat" exists and since it's opensource they can just inspect how I do things and write something specific to detect that (for example the resupply routine which happens at linear intervals). My point is: they have all the advantages they need to pinpoint who is using this bot.

About the captchas, I totally agree. I use a free API which has a decent precision and a easy way to get users with no knowledge to set it up. Unfortunately it's not fast the way it is implemented, I can assure that it will find a correct answer but it'll take time. (no idea how to make it better)

I have lots of things to update in this bot but no time to do it. I'll try to do it in this weekend, but no promises. Also, if you are interested in helping with pre-releases tests dm me at: dev.joabo@pm.me

its downhill since youtube not allowing discord to use their url on discord but i digress

i agree with every point you made here, especially the resupply routine, you might want to disable the get profile etc, its obvious that we use something to automate

put a random timer everytime the bot read "fish boost ended" etc and redo buff thing, at least there's no patterns shown whatsoever, same thing when we start the bot, do buff at random interval

oh and one more thing, the rate limited thing is annoying, when we put sleep to avoid rate limit, this potentially make the bot predictable, because there's certain delay before every action

and for pre release test, ill contact you when i have some free time to kill

BigBroski1337 commented 1 year ago

Quick question: If I leave the OCR_API_KEY field empty, will it disable the CAPTCHA bypass? When using debug, it still shows that it is using the OCR engines?

thejoabo commented 1 year ago

Quick update on this issue:

I finally had to time to make adjustments in the bot structure, there is a lot of things that needed to be refactored.

Here is the preview of the v2.0.0 changelog with things that I already did and is working, but there is some hard things to do next, like refactoring the menu (to adapt to these changes and implement other stuff, this will probably be longest part) or the Scheduler class to manage properly the schedules for automated actions (like buffs, selling, buying...) - this will solve the issue mentioned by @gabeaventh about predefined routines - and some other integrations between classes.

Long Play Session and the bot takes so much time to solve the captcha that normal human being would take 1-5 seconds to finish

Also, this one is already fixed, captcha solving time is way shorter now.

I'll release as soon as I finish and test everything.

The changelog so far : v2.0.0 - 11/x/22

Added

DrMkdaddy commented 1 year ago

try having a delay on the captcha auto answer system tbh if it's dependant on how quickly it's answered. That's the only way the bot could reasonably detect that behaviour.

thejoabo commented 1 year ago

try having a delay on the captcha auto answer system tbh if it's dependant on how quickly it's answered. That's the only way the bot could reasonably detect that behaviour.

@Nirudium True, but it must be something dynamic, because even if it will usually answer very fast, some captchas could be harder to solve, so a fixed delay to send the '/verify' message won't work either.

Here is an example of the solving time of the new method: newcaptcha

Notes:

ElbertWan commented 1 year ago

Is this captcha issue still ongoing? @thejoabo

thejoabo commented 1 year ago

@ElbertWan, this issue is not just about the captcha, but about these bans for no apparent reason, indicating that an unknown detection method is in place. Since we can't simply figure out exactly what it is, we believe that the linear action routines that this bot make, contributes for leaving a "fingerprint" over time. I think that if I make things more "human-like" (with a well reasoned approach of randomness), it should be way harder to detect.

TLDR: yes, until i release the version 2.0.0 (btw, the current captcha solving algorithm works fine, it's just not "human-like", cos it takes too long ~25s) .

thejoabo commented 1 year ago

hi, when you will release v2?

@DomeSs97 I just finished the scheduler class (which pseudo-randomizes the buffs/automation routine), other than that, I need to refactor the "CompactMenu" (to adapt it to the new changes), do some code cleanup - and, obviously, a lot of tests. I won't promise a specific date, but it shouldn't take too long (couple of days at most).

thejoabo commented 1 year ago

New version experimental-2.0.0 (changelog) available. I'll be converting this issue into a discussion.