AI 驱动的验证码求解器
本项目是一个基于 Python 的命令行工具,它使用大型多模态模型(如 OpenAI 的 GPT-4o 和 Google 的 Gemini)来自动求解各种类型的验证码。它利用 Selenium 进行 Web 浏览器自动化,以与网页交互并实时求解验证码。
成功的求解过程会以 GIF 格式记录在 successful_solves 目录中。
主要特性
- 多 AI 提供商支持:支持 OpenAI(例如 GPT-4o)和 Google Gemini(例如 Gemini 2.5 Pro)模型。
- 多验证码类型:能够求解各种验证码挑战。
- 浏览器自动化:使用 Selenium 模拟人类与网页的交互。
- 可扩展性:模块化设计使得添加对新验证码类型或 AI 模型的支持变得容易。
- 基准测试:包含用于测试求解器性能和成功率的脚本。
支持的验证码类型
该工具可以求解 2captcha.com/demo/ 页面上找到的以下验证码类型:
- 文本验证码:简单的文本识别。
- 复杂文本验证码:具有更多扭曲和噪声的文本。
- reCAPTCHA v2:Google 的"我不是机器人"复选框,带有图像选择挑战。
- 拼图验证码:滑块拼图,必须将拼图块移动到正确位置。
- 音频验证码:转录音频文件中的字母或数字。
先决条件
- Python 3.7+
- Mozilla Firefox
安装与配置
-
克隆仓库:
bash git clone https://github.com/aydinnyunus/ai-captcha-bypass cd ai-captcha-bypass -
安装依赖:
bash pip install -r requirements.txt -
设置您的 API 密钥: 通过复制示例文件在根目录创建一个
.env文件:bash cp .env.example .env打开.env文件并添加您的 OpenAI 和/或 Google Gemini 的 API 密钥:OPENAI_API_KEY="sk-..." GOOGLE_API_KEY="..."
使用方法
运行求解器的主要脚本是 main.py。您需要指定要测试的验证码类型。您也可以指定 AI 提供商和模型。
命令行参数
captcha_type:(必需)要求解的验证码类型。- 选项:
puzzle,text,complicated_text,recaptcha_v2,audio --provider:要使用的 AI 提供商。- 选项:
openai,gemini(默认:openai) --model:要使用的特定模型(例如gpt-4o,gemini-2.5-flash)。--file:用于audio测试的音频文件路径。(默认:files/audio.mp3)
示例
使用 OpenAI(默认)求解简单文本验证码:
python main.py text
使用 Gemini 求解复杂文本验证码:
python main.py complicated_text --provider gemini
使用 Gemini 求解 reCAPTCHA v2 挑战:
python main.py recaptcha_v2 --provider gemini
转录音频验证码:
python main.py audio --file files/radio.wav --provider openai
使用特定的 OpenAI 模型求解拼图验证码:
python main.py puzzle --provider openai --model gpt-4o
工作原理
- 启动浏览器:脚本使用 Selenium 启动一个 Firefox 浏览器实例。
- 导航:它转到指定验证码类型的演示页面。
- 捕获:它对验证码挑战(图像、指令或拼图)进行截图。
- AI 分析:捕获的图像或音频文件被发送到选定的 AI 提供商(OpenAI 或 Gemini),并附带针对验证码类型定制的特定提示词。
- 获取操作:AI 返回解决方案(文本、坐标或图像选择)。
- 执行操作:脚本使用 Selenium 输入文本、移动滑块或点击正确的图像。
- 验证:脚本检查成功消息以确认验证码已求解。
成功示例
以下是一些求解器成功绕过不同验证码类型的示例。
| 验证码类型 | OpenAI (GPT-4o) | Gemini (2.5 Pro) |
|---|---|---|
| reCAPTCHA v2 | ![]() |
![]() |
| 拼图 | ![]() |
![]() |
| 复杂文本 | ![]() |
![]() |
项目结构
main.py:运行验证码求解器测试的主要入口点。处理命令行参数并调用相应的测试函数。ai_utils.py:包含所有与 OpenAI 和 Gemini API 交互的函数。这是定义提示词和进行 API 调用的地方。puzzle_solver.py:专门实现用于求解多步骤滑块拼图验证码的逻辑。benchmark.py:用于运行多个测试以评估不同求解器性能和成功率的脚本。requirements.txt:项目所需的所有 Python 包的列表。screenshots/:临时保存验证码截图的目录。successful_solves/:保存成功求解过程 GIF 的目录。





