GithubHelp home page GithubHelp logo

crewcutbro / behavior_captcha_cracker Goto Github PK

View Code? Open in Web Editor NEW

This project forked from yujunjiex/behavior_captcha_cracker

0.0 0.0 0.0 36.24 MB

基于深度学习的行为式验证码研究及破解。类型包括滑块式/点选式,平台包括极验/易盾/云片

License: GNU General Public License v3.0

Python 7.38% JavaScript 22.84% Shell 0.22% Makefile 0.17% C 64.94% Cuda 4.09% C++ 0.35%

behavior_captcha_cracker's Introduction

行为式验证码识别

本项目目的是使用深度学习来对行为式验证码进行机器识别,对此类验证码的安全性做一个整体评估。

🙆‍♂️ 请勿用于非法用途!

⭐ 如果对你有帮助的话,可以light up stars~

项目成果

滑块式验证码「极验」「易盾」「云片」通用模型测试集准确率99+%

点选式验证码「易盾」模型测试集TOP1准确率96%,TOP10准确率99+%

主目录结构

.
├── requirements.txt	# 所需环境
├── LICENSE
├── readme
├── README.md
├── behavior_simulation	# 「易盾」selenium模拟
├── click_captcha	# 点选式验证码
├── slider_captcha	# 滑块式验证码
├── spider_tools	# 爬虫通用工具
└── unfinished_click_captcha	# 未训练的点选平台
    ├── __init__.py
    ├── geetest
    └── yunpian

项目主要分为三个部分:(请分别进入查看对应md文档)

什么是行为式验证码?

行为式验证码目前主要分为滑块式和文字点选式。如下图所示:

service_captcha_slide

service_captcha_text_click

相对于传统的图形验证码,行为式验证码相对来说用户体验更好,而且因为这种验证码由于加入了更多的干扰,并在背后搭载了风控模型,使得安全性更高,渐渐的成为了现在主流的验证方式。

识别大致流程

对于行为式验证码来说,传统的OCR识别或者简单的图像处理已经力不从心,故我们尝试使用新兴的深度学习来进行图像识别。

具体实现逻辑请参考主目录结构中对应目录内的md文档

深度学习的前提是都需要大量的数据集做支撑。

对于滑块式验证码

关键是要找到滑块的缺口位置,再通过模拟行为轨迹来通过人机验证。

对于一些简单的图片,其实我们可以通过opencv计算相似度等方式来获得缺口,这个方式我们不讨论。

这里使用 YOLOV3 模型来识别滑动验证码缺口,YOLOV3将定位和分类直接转换成回归问题,速度快,并且对于识别滑块这种场景,我们只有一类。

对于点选式验证码

借鉴了很多实现后,文字定位同样可以采用YOLOV3算法,文字分类我们采用定义卷积网络来实现。最后再对PC端的鼠标行为轨迹进行模拟。

为什么不采用YOLOV3一步实现呢?

深度学习的学习其实是针对某一类输入,学习并泛化出指定的输出,这个学习过程对于每一类特征明显的训练集可以得到很好的效果,但对于直接对图片中的文字进行定位并认识它,这个学习成本是很高的。就好比我只有一个脑子,要我同时学中文和英语;和有两个人,一个人学中文,一个人学英语,使用同样的成本,哪个效果更好,也就显而易见了。再者说YOLOV3对于小目标的检测会相对较弱。

说明

项目不提供权重模型噢

如果需要「某盾」点选数据集的我可以免费发给你,但务必不要用于非法活动。

邮箱:[email protected]

参考项目

协议

本项目基于GNU开源协议,不得用于商业用途

本项目仅供学习交流使用,本人不承担任何法律责任

若有侵权请联系删除。

behavior_captcha_cracker's People

Contributors

yujunjiex avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.