前段写了一个破解极验滑动验证码的程序,事后发现网上的教程给出的方法全都非常复杂,一写就是一个系列。而我写的程序全加起来连100行都不到,所以我想还是有必要和大家分享一下的。
试图破解过极验验证码的人都知道破解滑块验证码最核心的主要有两件事:首先是识别缺口所在位置,第二点是对抗行为轨迹识别。所以本文主要围绕这两点来分析。
为了保证安全性&节省工作量,程序使用的是按键精灵&易语言搭配使用的方式进行识别的。就是易语言负责截屏和识别缺口位置,通过剪切板把位置信息传递给按键精灵,按键精灵负责控制鼠标模拟人类滑动过程。
遇到这个问题的时候,我的第一反应就是用机器学习识别,并且有知乎网友用了这个方法。但稍微仔细想一下就会发现其实只要对比两张图的某一个像素灰度有没有差别很大就可以了,15行代码就能搞定
从代码中可以看出,其实就是循环循环比较图像[1]和图像[2]的颜色灰度没有没相差超过100。
其实截图和识别缺口的代码用按键精灵就能写,而且用按键精灵来写代码量会更小。但是按键精灵需要装大漠模块,并且大漠模块安全性未知,所以只好出此下策。
按照极验官网的介绍:“验证的过程中会收集用户拖动滑块的行为轨迹和用户设备信息等多维度信息,实时分析这些信息来进行人机识别。”
如果拖拽过程中的行为轨迹未能通过人机识别验证,即便正确拖拽到缺口也不能通过验证,并弹出小怪兽。
不过以实际测试结果来看,极验滑动验证码的行为人机识别能力还是比较差的。只要拖拽时速度别太匀速,有一些明显的变化,并且鼠标的纵坐标有轻微的移动就能通过验证。对模拟程度方面的要求还是比较低的。
至此,破解程序的主要代码就介绍完了。加上其他的辅助代码就能正常运行了。其他代码可以从我给出的链接下载。
源码下载地址:
https://www.xinsheji.org/picture/verification_code.zip
验证安全2.0时代:极验验证码评测http://www.freebuf.com/articles/others-articles/116331.html
一个函数破解Geetest滑动验证码http://www.freebuf.com/articles/web/140693.html
极验验证可以被破解吗?https://www.zhihu.com/question/28833985
极验滑动验证最新破解实践(18年1月底)https://zhuanlan.zhihu.com/p/31995134
*本文原创作者:ynefen,属于FreeBuf原创奖励计划,未经许可禁止转载