seikur0 / PGO-mapscan-opt

GNU General Public License v3.0
111 stars 50 forks source link

Recaptcha #285

Open darkforcesjedi opened 8 years ago

darkforcesjedi commented 8 years ago

See here:

https://www.reddit.com/r/pokemongodev/comments/561kdg/this_is_how_recaptcha_looks_like_ingame/

This is why scanning is failing for everyone.

seikur0 commented 8 years ago

I see. Guess it's over for us, ey :/

rafsawicki commented 8 years ago

I guess it depends on how often this captcha request would appear. Implementing api of https://2captcha.com/ might be a viable option and there are already working implementations that use it to resolve captcha on PTC accounts creation page.

ChromeHearts commented 8 years ago

If there is a way to find out which account is required to solve a recaptcha from the API, then we could get the googlekey and submit to 2captcha.com to solve it, then use the returned key to solve the recaptcha and unlock the account

seikur0 commented 8 years ago

They added more than the captchas though. I wish they only added captchas!

See this

chelming commented 8 years ago

@ChromeHearts you can tell which account is returning empty cells by changing line 1495 of main0.py to lprint('[{}] Non-empty cell returned as empty from user {}'.format(self.account['num'],self.account['user']))

ChromeHearts commented 8 years ago

Looks like the challegeURL will lead to a reCaptcha link, and one can solve it through a browser i found in the API, there is a verifyChallege message which takes a string token. Does anyone know how to send this message in Python to reply the solved reCaptcha key?

I am hopping this is the way to solve the reCaptcha programmatically

darkforcesjedi commented 8 years ago

There is a thread on r/pokemongodev that says how to do it. It will probably get rolled into the open source API soon at which point a captcha solving service can be employed, or the challenged threads can be idled and the captcha forwarded to the web interface.

seikur0 commented 8 years ago

That's easy to do and not the problem. @ChromeHearts you know that "url" you get redirected too after solving the captcha? The one that starts with unity:? You take that without that first unity:-part and send it in a VerifyChallengeMessage as token string. I just did some tests and it's working. The problem is more how to make it accessible/easy to apply.

dikkedeur commented 7 years ago

http://imgur.com/a/H7OIi looks like something... if this could be on the website frontend that you first need to solve captha before you get access to the website part, then this could be a nice thing. you can then share your website with your local community, and together we solve the captha and benefit from it.

more information > https://www.reddit.com/r/pokemongodev/comments/56856v/made_this_for_my_maps_to_avoid_captcha/

ChromeHearts commented 7 years ago

@seikur0 Could you show me the code how to send the verifyChallenge? Sorry, I am new to protobuf. I figured how to create the message, but I am not too sure how to put it in a request, and reply back to the server. I am testing if we can use Flask to provide an restful api. One could solve the captcha and curl the key back to the worker.

I believe this is the VerifyChallenge message


msg = POGOProtos.Networking.Requests.Messages_pb2.VerifyChallengeMessage()
msg.token = "<some key>"
ChromeHearts commented 7 years ago

Just saw your new commit. That's helpful. Thanks!