本文分析的是极验点选验证码。
不管自己训练识别模型还是调用第三方识别接口,都需要拿到完成的验证图片。
极验的滑块验证图片是重新拼接的乱序图片。图片是由canvas标签绘制的,可以通过监听canvas断点调试。
接下来看看点选是否与众不同。
@
极验测试地址: https://www.geetest.com/demo/
分析接口
点击确仁后,可以看到接口参数。https://apiv6.geetest.com/ajax.php?
gt和challenge
gt和challenge是register-click接口返回的。
https://www.geetest.com/demo/gt/register-click?
w参数
只有w一个加密参数,所以不论是点选的轨迹还是用户的指纹等都在w当中。
不过Js被混淆了,无法通过搜索关键词定位参数。
此时处理方法有如下几种:
- 1、可以通过堆栈慢慢调试
- 2、手写AST还原混淆代码
- 3、通过AST内存漫游定位
- 4、拿在线工具解混淆后再做考虑
去变量名混淆后,把js往本地存一份,然后开启Js替换。具体操作可自行百度。
此时可以搜关键词和调试了,通过追踪Js可以发现w在下图位置生成。
那么w在原Js文件的位置就在这里:
那么接下来慢慢调试还原即可。
w分析就到这里了,里面肯定会有一些点击轨迹,不过这和滑块验证的不同,应该可以根据坐标模拟。
注册验证图
有了gt和challenge,可以请求图片接口,获取验证图片
https://apiv6.geetest.com/get.php?
刷新验证码接口 https://apiv6.geetest.com/refresh.php?
获取的图片如下:
图文识别
这块内容不做过多说明,完全可以用开源的模型或者第三方识别接口。
点击的信息可以按比例分割图片,获取正确的验证文字,比如“脆皮桂鱼”,通过文字识别来获取结果
点击坐标的话,需要了解一些目标检验、文字识别的概念。
整体的流程是收集样本集、图文标注、训练定位器、检测位置、训练分类器、生成模型。
或者选择一些线上训练平台进行开发和部署。
不管什么方法,最终只要能识别出图片中的文字和坐标即可。
备注
其实本文介绍的并不详细,一些在线工具和开源框架都未提及名字,大家可以自行查找。
主要是对验证参数的定位进行了分析,有疑问可留言或私信!