

验证码问题,一直是自动化界的一大难题,验证码的出现就是为了抵制自动化,但是办法总比困难多,今天就带来一期【焚诀】万能破解验证码。
本文将带你从传统到邪修,从提示词到实战演示。
传统的工程师,那就是ddddocr,OpenCV,耗时又费力,但是邪修是怎么做的,获取相关消息,扔给AI(豆包),然后在解决问题。
不废话,直接说方法。
使用方法,打开影刀的魔法指令,把下面的提示词+相关信息(如滑块,识别字母,图片)扔给他即可:
# 角色设定
你是一名验证码自动化识别专家,精通ddddocr、OpenCV、Pillow、requests等Python库,以及大模型辅助识别方案。
# 任务目标
根据我提供的验证码类型和图片信息,自动选择最优技术方案,输出可执行的Python代码或标准化识别结果。
# 输入格式(我会提供以下1~多项)
- 验证码类型:[滑块 | 字母数字 | 点选 | 旋转 | 其他]
- 图片信息:[文件路径 / Base64字符串 / 图片URL]
- 额外参数:[阈值 / 匹配模式 / 输出格式要求]
# 技术方案选择逻辑(请按此优先级判断)
┌─────────────────────────────────┐
│ 1️⃣ 字母/数字验证码 → 优先ddddocr │
│ 2️⃣ 滑块验证码/文字点选 → OpenCV边缘检测+模板匹配 │
│ 3️⃣ 复杂图片/点选 → 豆包大模型辅助(不用写代码,仅需输出:用豆包) │
│ 4️⃣ 旋转验证码 → 角度检测+图像旋转校正 │
│ 5️⃣ 不确定类型 → 多方案尝试+置信度反馈 │
└─────────────────────────────────┘
滑块:在图片中找到缺口,结算缺口与滑块的距离,直接拖动滑块相关联的拖拽元素移动该距离
字母数字:在指定的输入框中,输入识别的字母数字
## 情况A:需要优先ddddo / → Open代码时
```python
# 自动导入所需库
import cv2, ddddocr, requests, base64, numpy as np
from PIL import Image
# [生成完整可运行代码]
# 要求:含注释、异常处理、结果打印
## 情况B:需要坐标/结果时(如豆包辅助)
获取相关信息,后打开:https://www.doubao.com/chat/,修改下方的提示词,继续结果的返回。
- 滑块缺口/点击位置:这有两张图片,帮我返回小图在大图缺口的xy坐标位置用相对大小表示,只输出字典 `{"x": 0.xx, "y": 0.xx}`,不要废话
- OCR文字结果:只输出识别字符串,如 `"aB3d"`,不要废话
- 旋转角度:只输出数字,如 `15.3`,不要废话
- ❌ 禁止任何解释性文字
# 特殊指令支持
- 🪄 `@magic [文件路径]` → 自动加载图片+智能识别+输出结果
- 🔄 `@rotate` → 优先检测旋转角度并校正
- 🎯 `@coordinate` → 强制输出相对坐标字典格式
- 🧠 `@doubao` → 生成适合豆包调用的prompt+Base64处理代码
# 开始任务
请根据我提供验证码信息,你将按上述规则响应。
```
---
## 🔧 配套工具函数(建议预置)
```python
# utils.py - 万能验证码处理工具集
import cv2, base64, numpy as np, requests
from PIL import Image
import ddddocr
def base64_to_cv2(b64_str):
"""Base64转OpenCV格式"""
img_data = base64.b64decode(b64_str)
nparr = np.frombuffer(img_data, np.uint8)
return cv2.imdecode(nparr, cv2.IMREAD_COLOR)
def cv2_to_base64(img):
"""OpenCV格式转Base64"""
_, buffer = cv2.imencode('.png', img)
return base64.b64encode(buffer).decode('utf-8')
def get_relative_coord(img, x, y):
"""像素坐标转相对坐标(0~1)"""
h, w = img.shape[:2]
return {"x": round(x/w, 2), "y": round(y/h, 2)}
def ocr_by_ddddocr(img_path):
"""ddddocr快速识别"""
ocr = ddddocr.DdddOcr()
with open(img_path, 'rb') as f:
return ocr.classification(f.read())
def edge_detect(img):
"""Canny边缘检测预处理"""
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
return cv2.Canny(gray, 50, 150)
def template_match(bg, block):
"""模板匹配找滑块位置"""
bg_edge = edge_detect(bg)
block_edge = edge_detect(block)
res = cv2.matchTemplate(bg_edge, block_edge, cv2.TM_CCOEFF_NORMED)
_, max_val, _, max_loc = cv2.minMaxLoc(res)
return max_loc[0], max_val # x坐标, 置信度
```这里我找了一个滑动拼图验证码来实战,在下方的gif显示,魔法指令仅仅用了一句提示词,就解决了验证码问题。

这里演示,如何使用豆包获取需要点击的位置,后续只需要鼠标点击该位置即可,同理,任何验证码都可以以这样的思路解决。

1.传统验证码破解依赖 ddddocr、OpenCV,调参复杂、效率低;AI 邪修思路(对接豆包)零代码、高适配,是最优解;
2.本文【焚诀】方案提供标准化提示词、工具函数、魔法指令,影刀 RPA 可直接调用,开箱即用;
3.覆盖滑块、字母数字、点选、旋转全场景,无论简单还是复杂验证码,都能快速精准破解,彻底解决自动化验证码难题。
如果想学习跟多有趣的玩法关注公众号【LucianaiB】,亦或者可以来:
