滑块拖动验证码智能识别验证码技术(持续更新)

众所周知,验证码是用来防机器的。但是,随着神经网络的发展,近几年验证码难度持续上升,这玩意儿的存在存粹就是一种负担,特别是国内到处都是的【Ji验】。本文针对“J验”及其他类似验证方式。

项目地址https://github.com/yixinNB/FuckCaptcha

判断人机原理

1.拖动

极验

2.拖的背后

轨迹分析

首先会记录你拖动的轨迹(官方承认),根据轨迹初步判断是否为机器人。

例如直接平滑地拖过去100%提示“错误,请重试”(亲自实验了的)。

真人拖动图像
真人拖动图像

浏览记录分析

如果仅仅只在一个或几个页面进行大量验证码验证,那是肯定过不去验证的。这个肯定是难度最大的部分,也是最能有效防止脚本攻击的东西,这点是自己很难写的。模拟也很烦,资源消耗也高。这里不再过多讲述。

开始识别验证码

验证码识别界面

肉眼一眼就可以看出有一个十分明显的深色区域,识别的第一步就是精准找到它(误差要求≤2像素,网上用python的开源库很多都达不到这个要求)

由上图可见,干扰肯定会有的,如果简单的判断深色区域肯定会被干扰影响。

主要算法有判断该深色方块的大小,形状,还有周围的颜色,整个识别区域整体的颜色,再根据其他疑似区域的数据来综合判断。这个就需要有耐心,一点一点去改进就行。

前面写的已经写过,找到这个黑方块才是第一步,也是最简单的一步。

拖动的过程

拖动的过程肯定是模拟真人拖动的过程,下图是我最开始用的算法,因为代码量巨大,并且还是可以被识别判定为机器,现在已经停止使用

一种智障的拖动算法
一种十分智障的拖动算法

因为现在还在实验阶段,没有完全成熟的代码,所以先把采集到的真人数据发出来,圈出来的地方就是需要特别注意的。

识别测试

https://github.com/yixinNB

bug还挺多,寒假上线测试

求大佬解决BUG(网络传输问题)       https://github.com/yixinNB/cs-internet

基本完工了

先来张GIF给你们预告下,免得你们说我瞎吹

新闻

19.12.29已经可以大致模拟了,机器拖动首次通过J验

人工智能模拟拖动数据可视化图像(已经很接近真人拖动)

19.12.28用户界面大致完工

发布了5 篇原创文章 · 获赞 1 · 访问量 886

猜你喜欢

转载自blog.csdn.net/yixinNB/article/details/103748549