Skip to content

🥂 Gracefully face hCaptcha challenge with Yolov5(ONNX) embedded solution.

License

Notifications You must be signed in to change notification settings

GoldDust69/hcaptcha-challenger

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hCaptcha Challenger

🚀 Gracefully face hCaptcha challenge with Yolov5(ONNX) embedded solution.




hcaptcha-challenger-demo

Introduction

Does not rely on any Tampermonkey script.

Does not use any third-party anti-captcha services.

Just implement some interfaces to make AI vs AI possible.

Requirements

  • Python 3.7+
  • google-chrome

Usage

  1. Clone the project code in the way you like.

  2. Execute the following command in the project root directory.

    # hcaptcha-challenger
    pip install -r ./requirements.txt
  3. Download Project Dependencies.

    The implementation includes downloading the YOLOv5 object detection model and detecting google-chrome in the current environment.

    If google-chrome is missing please follow the prompts to download the latest version of the client, if google-chrome is present you need to make sure it is up to date.

    Now you need to execute the cd command to access the src/ directory of project and execute the following command to download the project dependencies.

    # hcaptcha-challenger/src
    python main.py install
  4. Start the test program.

    Check if chromedriver is compatible with google-chrome.

    # hcaptcha-challenger/src
    python main.py test
  5. Start the demo program.

    If the previous test passed perfectly, now is the perfect time to run the demo!

    # hcaptcha-challenger/src
    python main.py demo

Advanced

  1. You can download yolov5 onnx models of different sizes by specifying the model parameter in the install command.

    • Download yolov5s6 by default when no parameters are specified.

    • The models that can be chosen are yolov5n6,yolov5m6,yolov5s6.

    # hcaptcha-challenger/src
    python main.py install --model=yolov5n6
  2. You can run different yolo models by specifying the model parameter to compare the performance difference between them.

    • Similarly, when the model parameter is not specified, the yolov5s6 model is used by default.

    • Note that you should use install to download the missing models before running the demo.

    # hcaptcha-challenger/src
    python main.py demo --model=yolov5n6
  3. Specify the challenge source.

    Mapping the target site's hcaptcha iframe to the demo site by specifying the site-key. The selectable sources can be viewed in the variable _SITE_KEYS.

    # hcaptcha-challenger/src
    python main.py demo --target=discord
  4. Specify the challenge language.

    [dev] Start the challenge in the specified language and the page elements will be replaced. Currently only zh and en are supported.

    # hcaptcha-challenger/src
    python main.py demo --lang=en

Solutions

You may be surprised by the lack of a pass rate in the following table, but if you have run the hcaptcha-challenger demo, you will see that it is almost impossible to fail a challenge, i.e. the pass rates for the various solutions provided by hcaptcha-challenger are almost close to THE ONE.

YOLOv5(onnx)

The following table shows the average solving time of the hCAPTCHA challenge for 30 rounds (one round for every 9 challenge images) of mixed categories processed by onnx models of different sizes.

  • Use of the YOLOv5n6(onnx) embedded scheme to obtain solution speeds close to the limit.
  • Use of the YOLOv5s6(onnx) embedded solution, which allows for an optimal balance between stability, power consumption, and solution efficiency.
model(onnx) avg_time(s) size(MB)
yolov5n6 0.71 12.4
yolov5s6 1.422 48.2
yolov5m6 3.05 136

SK-IMAGE

The following table shows the speed statistics of solving for specific labels using image segmentation in the same experimental setting.

  • The solving time is negligible using the rainbow method, which is as fast as taking a dictionary value.
  • The advantage of the base method is that it does not rely on any external model and can perform tasks in a variety of low-configuration containers through image processing alone.
method(SK-IMAGE) avg_time(ms) size(MB)
vertical river (base) 2883 /
vertical river (rainbow) / 0.29
airplane in the sky flying left (base) 30 /
airplane in the sky flying left (rainbow) / 0.29

Tour

Install Google Chrome on Ubuntu 18.04+

  1. Downloading Google Chrome

    wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
  2. Installing Google Chrome

    sudo apt install ./google-chrome-stable_current_amd64.deb

Install Google Chrome on CentOS 7/8

  1. Start by opening your terminal and downloading the latest Google Chrome .rpm package with the following wget command :

    wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
  2. Once the file is downloaded, install Google Chrome on your CentOS 7 system by typing:

    sudo yum localinstall google-chrome-stable_current_x86_64.rpm

Install Google Chrome on Windows / MacOS

Just go to Google Chrome official website to download and install.

Reference

About

🥂 Gracefully face hCaptcha challenge with Yolov5(ONNX) embedded solution.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%