欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

95行代码破解极验滑动验证码(附源码)

来源:本站整理 作者:佚名 时间:2018-05-09 TAG: 我要投稿

前段写了一个破解极验滑动验证码的程序,事后发现网上的教程给出的方法全都非常复杂,一写就是一个系列。而我写的程序全加起来连100行都不到,所以我想还是有必要和大家分享一下的。 
试图破解过极验验证码的人都知道破解滑块验证码最核心的主要有两件事:首先是识别缺口所在位置,第二点是对抗行为轨迹识别。所以本文主要围绕这两点来分析。 
为了保证安全性&节省工作量,程序使用的是按键精灵&易语言搭配使用的方式进行识别的。就是易语言负责截屏和识别缺口位置,通过剪切板把位置信息传递给按键精灵,按键精灵负责控制鼠标模拟人类滑动过程。 
15行代码识别缺口位置 
遇到这个问题的时候,我的第一反应就是用机器学习识别,并且有知乎网友用了这个方法。但稍微仔细想一下就会发现其实只要对比两张图的某一个像素灰度有没有差别很大就可以了,15行代码就能搞定

从代码中可以看出,其实就是循环循环比较图像[1]和图像[2]的颜色灰度没有没相差超过100。
其实截图和识别缺口的代码用按键精灵就能写,而且用按键精灵来写代码量会更小。但是按键精灵需要装大漠模块,并且大漠模块安全性未知,所以只好出此下策。

30行代码模拟人类滑动
按照极验官网的介绍:“验证的过程中会收集用户拖动滑块的行为轨迹和用户设备信息等多维度信息,实时分析这些信息来进行人机识别。”
如果拖拽过程中的行为轨迹未能通过人机识别验证,即便正确拖拽到缺口也不能通过验证,并弹出小怪兽。

不过以实际测试结果来看,极验滑动验证码的行为人机识别能力还是比较差的。只要拖拽时速度别太匀速,有一些明显的变化,并且鼠标的纵坐标有轻微的移动就能通过验证。对模拟程度方面的要求还是比较低的。
'按住圆形滑块 
MoveTo850,616 
Delay500 
LeftDown1 
Delay50 
a=Plugin.Sys.GetCLB()'获取剪切板文本 
a=a+取随机数(-5,5)'人为的制造一些误差 
'先快速移动50px,走完50px的误差 
For25 
IfLib.算法.随机数字串(1)=0Then'十分之一的概率触发纵坐标移动 
纵移距离=取随机数(1,2) 
Else 
纵移距离=0 
EndIf 
MoveR2,纵移距离'相对移动鼠标位置,横向移动2像素,纵向移动变量内的数值 
Delay取随机数(10,50)'随机等待 
Next 
'按照最慢速度走完所有像素。代码内容与上方代码相同,只是参数不同,速度更慢 
Fora 
IfLib.算法.随机数字串(1)=0Then 
纵移距离=取随机数(1,2)' 
Else 
纵移距离=0 
EndIf 
MoveR1,纵移距离' 
Delay取随机数(3,50) 
Next 
'放开鼠标 
Delay500 
LeftUp1 
Delay30 
LeftUp1 
'结束 
至此,破解程序的主要代码就介绍完了。加上其他的辅助代码就能正常运行了。其他代码可以从我给出的链接下载。
源码下载地址:https://www.xinsheji.org/picture/verification_code.zip
 

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载