Flash基础入门图像识别练习(Flash验证码)
晓晓 2018-03-27 来源 :网络 阅读 1351 评论 0

摘要:本来这是个很不错的思路,跳出了「干扰线」「扭曲字」等验证码的思维定势。但方式新颖并不代表能高枕无忧。

Flash基础入门图像识别练习(Flash验证码)

本来这是个很不错的思路,跳出了「干扰线」「扭曲字」等验证码的思维定势。但方式新颖并不代表能高枕无忧。


因为复杂度不够,所以反而容易破解。


有几个缺点:

1.颜色单一(很好识别)

2.下方候选球滚动缓慢(足够程序识别完再点击)

3.鼠标悬停(哪怕机器慢,只要控制鼠标悬停,就可以让候选球停止滚动)

4.不能加快速度或取消悬停(因为这样「人」就没法选了)


破解思路:

1.找到网页中验证码位置和大小(很容易)

2.截图采样(验证码图片和候选球图片)

3.分别从图像中提取全部色块及其对应的Rectangle(大约25x25),存入big和small

4.遍历对比候选球和验证码,颜色近似则可认为匹配

5.根据候选球的Rectangle,加上第2步里截图的offset,计算候选球在屏幕上的绝对位置

6.编程或用按键精灵在候选球上click一下

7.每次处理一个球,然后等等,给flash一个反应时间。

下面是破解样本(数字不准,因为有废弃识别被程序过滤掉了)

Flash基础入门图像识别练习(Flash验证码)

Flash基础入门图像识别练习(Flash验证码)

Flash基础入门图像识别练习(Flash验证码)

Flash基础入门图像识别练习(Flash验证码)

关于速度

速度的问题大家会很关心,但我可以说速度不是问题。

首先,因为候选区是鼠标悬停的。所以哪怕我机器再烂再慢,我可以先悬停,让它停止滚动,然后再慢慢「一百遍一百遍」。

其次,就算一直滚动,但因为要让人点击,所以不可能滚动太快。在我的i3机器上,没有优化的识别速度大约10fps,优化过后识别率提升到40~50fps,远远超过人的反应速度。也就说这个验证码只要人能点,机器就可以点。


改进意见

1.使用带图案,带纹理的小球

2.随机改变小球形状

3.验证码和候选球不需要完全一样,只需要人能看懂「相似」就行(比如验证码是数字「贰」,候选球是阿拉伯「2」),这样机器基本不太可能识别

4.增加背景复杂度,比如图片背景

暂时想到这么多,欢迎各位朋友一起探讨。


本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标常用软件Flash频道!


本文由 @晓晓 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程