Create Tool Guides/unCaptcha authored by Brett Heinkel's avatar Brett Heinkel
# unCaptcha
![unCaptcha](uploads/2cf03b2ed20cb191fe5a04f4464c458e/30930456-c2cf7e0a-a38f-11e7-869e-d7aa783e6f02.gif)
unCaptcha is an automated system that can solve reCaptcha's most difficult auditory challenges with high success rate.
[Website](http://uncaptcha.cs.umd.edu/) | [GitHub](https://github.com/ecthros/uncaptcha2) | [Paper](http://uncaptcha.cs.umd.edu/papers/uncaptcha_woot17.pdf)
## Introduction
unCaptcha combines free, public, online speech-to-text engines with a novel phonetic mapping technique, demonstrating that it requires minimal resources to mount a large-scale successful attack on the reCaptcha system.
Since reCaptcha was updated to counter the use of Selenium, a browser automation engine, unCaptcha2 uses [PyAutoGUI](https://pyautogui.readthedocs.io/) to move to certain pixels on the screen and move around the page like a human.
Briefly, unCaptcha works in the following steps:
1. Navigate to Google's reCaptcha Demo site
2. Navigate to audio challenge for reCaptcha
3. Download audio challenge
4. Submit audio challenge to speech-to-text
5. Parse response and type answer
6. Press submit and check if successful
## Installation
Start by cloning the repository:
```sh
$ git clone git@github.com:ecthros/uncaptcha2.git
```
Since unCaptcha2 has to go to specific coordinates on the screen, you'll need to update the coordinates at the top of `run.py` based on your setup. On Linux, you can use the following command to find the coordinates of your mouse:
```sh
$ xdotool getmouselocation --shell
```
Next you'll need to configure credentials for whichever speech-to-text API you choose. Google's, Microsoft's, and IBM's speech-to-text systems are already included in `queryAPI.py` (set the username and password as required).
For Google's API, you'll have to set the `GOOGLE_APPLICATION_CREDENTIALS` environment variable to the name of a file containing your Google application credentials.
Finally, install the dependencies:
```sh
$ pip install -r dependencies.txt
```
\ No newline at end of file