Conmajia

Stop stealing sheep!

导航

< 20253 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

破解flash动画验证码

© conmajia 2012

本次目标是www.iboling.comflash验证码2014更新这个网站已经挂了

这个网站很新颖用的是flash动画随机给出大小球然后让用户用鼠标点击相应的球实现验证码输入像这样

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

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

有几个缺点

1.颜色单一很好识别

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

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

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

破解思路

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

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

3.分别从图像中提取全部色块及其对应的Rectangle大约25x25存入bigsmall

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

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

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

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

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

关于速度

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

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

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

改进意见

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

2.随机改变小球形状

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

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

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

© Conmajia 2012

posted on2012-06-10   Conmajia  阅读(5265)  评论(0编辑  收藏  举报

编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示