← 返回文章列表

深度解析:实干派!网易易盾增强版滑块验证码,全方位讲解识别思路(含源码)

注意,本文只提供学习的思路,严禁违反法律以及破坏信息系统等行为,本文只提供思路如有侵犯,请联系作者下架某盾的增强版滑块已经上线很久了,最近心血来潮想看一下这个验证码是骡子是马,我也翻阅了很多市面上的教程,都对该验证码有一定的简介,部分还停留

注意,本文只提供学习的思路,严禁违反法律以及破坏信息系统等行为,本文只提供思路

如有侵犯,请联系作者下架

某盾的增强版滑块已经上线很久了,最近心血来潮想看一下这个验证码是骡子是马,我也翻阅了很多市面上的教程,都对该验证码有一定的简介,部分还停留在理论层面,

本文将从浅到深的讲解,该验证码识别破解的奥秘所在

,如果还不了解什么是增强版滑块的话,可以去易盾官网看下,下图是官网的例子

本文滑块识别已同步上线至OCR识别网站: http://yxlocr.nat300.top/ocr/other/11

本文讲述的方法,经过最后分析,

可以得到95的准确率

,下面来看一些预测成功的数据集

单从官网例子中可以看出,滑块是经过旋转+偏移量来移动的,如下是经过反混淆后的代码,从js代码逆向分析也可以得知,jigsaw(即滑块)的样式left移动x像素时,其旋转角度是x*attrs,这个attrs就是请求包里返回的角度

分析步骤

1、移动滑块

2、确定识别位置

3、确定滑动轨迹和缺口边框

4、缺口初步识别

5、滑块识别优化

6、最后总结

1、移动滑块

从初步分析的结果来看,我们就可以模拟该操作,我们只需要使用opencv中的方法即可,我以如下数据图片为例:

因为滑块的

最大旋转角度为90度

,我们只需要将滑块放置到背景的最左侧,然后循环90次,就可以得到所有模拟滑动的结果,这里需要注意,由于缺口图片是包含透明通道的,背景图没有,所以在叠加处理时,需要在背景中添加一个透明通道,同时,在叠加时,不需要展示缺口图的透明通道,代码如下:

import

os

import

cv2

import

numpy as np

def cv_show

(

img

)

:

cv2.imshow