Py学习  »  Python

Python破解简书登录极验验证码

Python中文社区 • 6 年前 • 940 次点击  

專 欄

treelake ,Python中文社区专栏作者。

博客地址:

http://www.jianshu.com/u/66f24f2c0f36




简述

极验验证码的主要问题在于对人的行为特征的分析,它会在你拖动滑块时以数十毫秒间隔记录你的鼠标移动数据发送到服务器,并使用各种算法(如深度学习)判断你的轨迹特征到底是人还是机器。我突然想到pid模型说不定能模拟人的行为特征,就想试试。 
实现思路上大家都差不多,简单的方案就是selenium操纵浏览器,由原始图和凹陷图对比得出要移动的距离,然后控制鼠标以某种方案移动即可。(图片的获取有两种方案,一是向服务器请求图片片段,然后拼接起来,我选择了另一种懒办法,在三种情况下截图对比) 
难一些的思路就是抓包分析,直接请求服务器,发送鼠标轨迹数据,网上有大神直接抓包分析发送xpos数据的样例,详见参考。哥们说他的正确率在90%以上,感谢他的热心交流,虽然没有透露他的具体方案 :) (当然,这种东西不好说的) 
我的成功率不高,要是高了就不太方便写博客了。成功率在40、50%吧,所以我放心地贴出来,仅供学习探索参考,而且极验的3.0也在推进,感觉样式还不错。我将我搜集到的有用资源都列在参考里了,网上分享的经验和代码不少,上手还是比较快的,演示视频中的代码也放上了,在github-geetest里直接附上了chromedriver可能更方便点,有兴趣的朋友可以试着玩玩,调下参数。还试了些其他的,比较乱,就没放上了。
我觉得这个对于搞机器学习的朋友会比较有吸引力,毕竟手里有个锤子,看啥都是钉子。现在这么好的陪练出来了,一攻一防,不过注意分寸吧。。。在代码中搜索到get_offsets用你自己的思路复写它,返回一个可迭代对象表示鼠标每次平移间隔即可。192行的间隔时间也可相应修改。

效果

渣画质动态图

连续尝试视频(题外话:视频简单处理参考 FFmpeg实用命令:音频、视频格式转换和其它操作)

参考

iYgnohZ - crack-geetest 
geetest拖动验证码破解 
duyamin - geetest-bypass.go 
V2EX - 豆瓣登陆验证码的识别脚本 
破解极验(geetest)验证码 
darbra - geetest_selenium.py 
极验验证码的破解4-执行破解 
极验验证码 - 知乎

代码

其它


长按扫描关注Python中文社区,

获取更多技术干货!

    

Python 中 文 社 区

Python中文开发者的精神家园

合作、投稿请联系微信:

pythonpost

— 人生苦短,我用Python —
1MEwnaxmMz7BPTYzBdj751DPyHWikNoeFS




本文为作者原创作品,未经作者授权同意禁止转载



今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/uAov9UxLAF
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/3415
 
940 次点击