吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5695|回复: 98
收起左侧

[Web逆向] YOLO识别拼图过滑块验证

  [复制链接]
szh12123 发表于 2026-6-9 21:51
本帖最后由 szh12123 于 2026-6-9 21:51 编辑

本文章中所有内容仅供学习交流使用,不用于其他任何目的,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!若有侵权,请联系作者删除。


由于对上一篇逆向分析中,使用滑块手动验证一直耿耿于怀,觉得不够优雅,于是花了点时间点上了训练模型的技能点,这次就分享一下使用yolo训练模型识别滑块拼图是一件多么简单的事情。
先看结果:

image.png

只想到成功率会很高,没想到是全过,识别速度也是相当快,

image.png

之前的手动滑块验证其实只获取了拼图框左下角的像素点X轴,而yolo识别图片刚好就可以做这个事情,
先下载尽量多的验证图片,这个两三百张应该差不多了,不需要png的小拼图,手动标注30-50个数据,我使用的是X-AnyLabeling

image.png

标注后的文件是这样的,

image.png

需要将json转为txt,并且准备训练集,文件夹结构如下,

image.png

classes.txt是标注的标签名称,

image.png

data.yaml是配置信息,

image.png

其实整个json转训练集可以直接请教AI老师要个代码文件直接就转了,不用手动建文件写参数,然后给就给yolo训练,

[Python] 纯文本查看 复制代码
from ultralytics import YOLO

def main():
    model = YOLO('/path/to/yolo26x.pt')   # 下载的yolo模型
    res = model.train(
        data='/path/to/data.yaml',  # 数据配置路径
        epochs=100,   # 训练轮数
        imgsz=320,    # 图片长边尺寸
        workers=4  #多进程数量
    )
    res = model('/path/to/test') # 测试图片路径(也可以不要测试但为了方便查看实际效果)
    for item,i in enumerate(res):
        i.save(filename=f'./results/result_{item}.jpg')
if __name__ == '__main__':
    main()


训练后就生成很多文件,weights里面就是训练好的模型,其他坐标图是训练的过程,会看的话可以用来判断训练的好不好,

image.png

因为训练集少效果肯定是不算很理想的,但没有关系,这个模型主要是用来偷懒标注的,

image.png

保存的模型是pt格式,使用X-AnyLabeling的自动标注需要转为onnx格式,使用cmd命令,

yolo export model=path/to/best.pt format=onnx

再创建一个yaml文件,文件名不重要,用来将模型和参数导入X-AnyLabeling自动标注,

image.png

主要参数可自行调整:

image.png

然后就可以执行自动标注了,先将标注的文件导入进来,再导入模型,

image.png

标注完后检查一下,有没有错误的或者漏标的(肯定是有的)手动标注一下,要偷懒也可以不检查,但是准确率可能会有所下降,然后你就获得了几百张的数据集,然后再用这套数据集重复之前的训练步骤,重新训练一个更好的识别模型,

image.png

这个模型的训练曲线就比之前的好多了,这样最后的模型就完成了,然后加载模型进行识别,

[Python] 纯文本查看 复制代码
from PIL import Image
from ultralytics import YOLO
def yolo_image_from_url(image_url):
    model = YOLO('/path/to/best.pt')
    response = requests.get(image_url)
    response.raise_for_status()
    image = Image.open(BytesIO(response.content))
    results = model(image, conf=0.1, max_det=1)
    boxes = results[0].boxes
    if len(boxes) > 0:
        box = boxes[0].xyxy[0].cpu().numpy()
        x1, y1, x2, y2 = box
        bottom_left_x = x1
        return bottom_left_x
    else:
        print("未检测到任何目标")
        return None


返回值是拼图左下角的像素点X轴,实测之后就有了之前的成功率,

image.png

再搭配上一篇的逆向分析,就有了全自动登录流程。  

免费评分

参与人数 26威望 +2 吾爱币 +125 热心值 +24 收起 理由
Rennick + 1 我很赞同!
Rabbit1124 + 1 我很赞同!
fengbolee + 1 + 1 我很赞同!
my_holiday + 1 + 1 热心回复!
cloud258 + 1 + 1 我很赞同!
Boring00 + 1 + 1 谢谢@Thanks!
天之牙2012 + 1 + 1 一直想训练一个yolo玩小游戏,但是家里电脑配置太低了i57代1060。。。
m529713870 + 1 + 1 谢谢@Thanks!
固相膜 + 1 + 1 我很赞同!
dragonsome + 1 + 1 我很赞同!
GDExecW + 1 我很赞同!
mr88fang + 2 + 1 我很赞同!
未来路 + 1 + 1 用心讨论,共获提升!
adam2527408 + 1 + 1 我很赞同!
titaniumes + 1 + 1 我很赞同!
qq3bot + 1 + 1 谢谢@Thanks!
accor + 1 + 1 我很赞同!
涛之雨 + 2 + 100 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
nideke + 1 + 1 我很赞同!
buluo533 + 1 + 1 用心讨论,共获提升!
weidechan + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
Link_Stark + 2 + 1 谢谢@Thanks!
xxob8 + 1 + 1 谢谢@Thanks!
helian147 + 1 + 1 谢谢@Thanks!
lsb2pojie + 1 + 1 我很赞同!
laozhang4201 + 1 + 1 热心回复!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| szh12123 发表于 2026-6-10 10:36
Henglie 发表于 2026-6-10 08:09
这种只能应对简单拼图吧,那种非线性轨迹,带快慢机制的怎么办

这个不带轨迹,这个只是为了获取角点坐标,轨迹要自定义模拟,上一篇帖子做了个简单的轨迹模拟

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
hunfeifei + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

sailor22 发表于 2026-6-30 21:10
YOLO训练的细节讲的比较好。
不过这个我认为没必要用YOLO,OpenCV就可以了,二值化,形态学处理下,Sobel 算子查找边缘,条件筛选一下,然后根据滑块初始点来找中心或者左下坐标,。
林北是大帅哥 发表于 2026-6-9 22:33
Rachilee 发表于 2026-6-9 23:16
这个厉害了
jinmusa 发表于 2026-6-10 00:12
学到了,感谢分享
jinqiaoa1a 发表于 2026-6-10 07:02
认真学习中
tykioy 发表于 2026-6-10 07:41

这个厉害了
assuller 发表于 2026-6-10 07:53
怎么这么厉害呢
Henglie 发表于 2026-6-10 08:09
这种只能应对简单拼图吧,那种非线性轨迹,带快慢机制的怎么办
c271687388 发表于 2026-6-10 08:10
感谢大佬分享!!!学习了。
nanwang666 发表于 2026-6-10 08:22
可是明明ddddocr直接就能用来做滑块验证啊,不需要去滑动啊
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-7-10 19:31

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表