深度解析:实干派!网易易盾增强版滑块验证码,全方位讲解识别思路(含源码)
注意,本文只提供学习的思路,严禁违反法律以及破坏信息系统等行为,本文只提供思路如有侵犯,请联系作者下架某盾的增强版滑块已经上线很久了,最近心血来潮想看一下这个验证码是骡子是马,我也翻阅了很多市面上的教程,都对该验证码有一定的简介,部分还停留
注意,本文只提供学习的思路,严禁违反法律以及破坏信息系统等行为,本文只提供思路
如有侵犯,请联系作者下架
某盾的增强版滑块已经上线很久了,最近心血来潮想看一下这个验证码是骡子是马,我也翻阅了很多市面上的教程,都对该验证码有一定的简介,部分还停留在理论层面,
本文将从浅到深的讲解,该验证码识别破解的奥秘所在
,如果还不了解什么是增强版滑块的话,可以去易盾官网看下,下图是官网的例子
本文滑块识别已同步上线至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