利用 canvas 破解 某拖动验证码
2016-01-14 14:35
309 查看
近来想刷某站的帐号,难点始终是验证码,发现该站使用的是 所谓的新型验证码,拖动补全 的类型,咋一看好复杂的样子,仔细一看好像简单的样子,于是研究研究之~~
canvas 验证码识别
目录[-]
Part 1 识别
Patr 2 模拟
案例: https://www.capy.me/products/ whois 查询发现应该是一个日本公司出的。
![](http://static.oschina.net/uploads/space/2014/1025/111329_GWDB_237940.png)
对比图片:利用canvas的特性 getImageData 读取像素,然后和你想要识别的图片对比,找出被挖出去的部分。
计算补全: 然后就简单啦,计算好被挖出部分在x 和 y 方向的偏移量,然后把 小图移动过去,OK 搞定。。。
![](http://static.oschina.net/uploads/space/2014/1025/122444_hoTk_237940.jpg)
代码示例: 看runjs: http://sandbox.runjs.cn/show/gfeesnxw (代码写的乱,大家将就着看看 --..)
在页面拖动一个元素,差不多看成是3个事件的组合:mousedown,mousemove,mouseup。
那么首先需要创建事件,定义好一个差不多的函数吧:
?
然后就是用js代码模拟拖动:
?
上面这段代码不是通用的,只是一个例子,可以去这里 https://www.capy.me/account/signup 用浏览器控制台输入代码测试。代码中的数字 10 就是移动的 像素,自行按需修改哦~
好了,这样就能写个程序自动注册帐号了,呵呵....
后话:这里还有个 http://geetest.com/tryit/ 叫极验的, 大致看了下,感觉也是类似的, 没有破解的需求,我就不伤脑筋去研究了。
源地址:http://my.oschina.net/u/237940/blog/337194?fromerr=fddQTU2w
canvas 验证码识别
目录[-]
Part 1 识别
Patr 2 模拟
案例: https://www.capy.me/products/ whois 查询发现应该是一个日本公司出的。
Part 1 识别
读取原图: 随便多刷新几次,读两张图片,用 PS 补成原图。![](http://static.oschina.net/uploads/space/2014/1025/111329_GWDB_237940.png)
对比图片:利用canvas的特性 getImageData 读取像素,然后和你想要识别的图片对比,找出被挖出去的部分。
计算补全: 然后就简单啦,计算好被挖出部分在x 和 y 方向的偏移量,然后把 小图移动过去,OK 搞定。。。
![](http://static.oschina.net/uploads/space/2014/1025/122444_hoTk_237940.jpg)
代码示例: 看runjs: http://sandbox.runjs.cn/show/gfeesnxw (代码写的乱,大家将就着看看 --..)
Patr 2 模拟
页面模拟:除了知道怎么识别图片位置,还需要知道怎么在页面模拟鼠标拖动操作,将图片移动到合适的位置。在页面拖动一个元素,差不多看成是3个事件的组合:mousedown,mousemove,mouseup。
那么首先需要创建事件,定义好一个差不多的函数吧:
?
?
好了,这样就能写个程序自动注册帐号了,呵呵....
后话:这里还有个 http://geetest.com/tryit/ 叫极验的, 大致看了下,感觉也是类似的, 没有破解的需求,我就不伤脑筋去研究了。
源地址:http://my.oschina.net/u/237940/blog/337194?fromerr=fddQTU2w
相关文章推荐
- ListView下拉刷新,上拉自动加载更多
- 更换key后,跳板机known_hosts保留原来认证信息,无法认证登录
- WeakHashMap解析
- RAID5阵列硬盘离线怎么恢复
- XMPP协议学习笔记二
- 使用树莓派实现微信远程监控
- 什么是网络连接状态指示器NCSI
- Tomcat热部署方法(3种)【转】
- linux安装tomcat
- 机器学习与数据挖掘网上资源搜罗——良心推荐
- 【总结】ACID、Data Replication、CAP与BASE
- XMPP协议学习笔记一
- 关注于一点,你会离成功更近
- 2.递归状态估计
- HTML表单的使用
- mac上的破解的软件
- IDEA 快捷键 Android Studio快捷键
- Java错误笔记
- 两个DIV嵌套,如何使大div下的小div居下
- 重载与重写