【焚诀】万能破解验证码
评论
收藏

【焚诀】万能破解验证码

经验分享
LucianaiB
2026-04-11 22:08·浏览量:1098
LucianaiB
影刀中级开发者
发布于 2026-04-11 22:081098浏览

验证码问题,一直是自动化界的一大难题,验证码的出现就是为了抵制自动化,但是办法总比困难多,今天就带来一期【焚诀】万能破解验证码。

本文将带你从传统到邪修,从提示词到实战演示。

如果是你,你会怎么做?

传统的工程师,那就是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】,亦或者可以来:

LucianaiB带你学影刀RPA

收藏61
全部评论1
最新
发布评论
评论