mirror of
https://github.com/ravizhan/geetest-v3-click-crack.git
synced 2025-12-06 15:02:49 +08:00
70 lines
1.8 KiB
Markdown
70 lines
1.8 KiB
Markdown
# geetest-v3-click-crack
|
|
极验三代文字点选验证码破解
|
|
|
|
**本项目仅供学习交流使用,请勿用于商业用途,否则后果自负。**
|
|
|
|
**本项目仅供学习交流使用,请勿用于商业用途,否则后果自负。**
|
|
|
|
**本项目仅供学习交流使用,请勿用于商业用途,否则后果自负。**
|
|
|
|
# 使用方法
|
|
|
|
安装相关依赖
|
|
|
|
```commandline
|
|
pip install -r requirements.txt
|
|
```
|
|
运行
|
|
|
|
```commandline
|
|
python main.py
|
|
```
|
|
|
|
验证全过程耗时4s左右 (极验限制,不能更短)
|
|
|
|
成功率80%左右
|
|
|
|
# DEMO
|
|
|
|
``` python
|
|
# 实例化两个类
|
|
crack = Crack(gt, challenge)
|
|
model = Model()
|
|
# 按顺序执行以下四个函数
|
|
crack.gettype()
|
|
crack.get_c_s()
|
|
crack.ajax()
|
|
for retry in range(6):
|
|
pic_content = crack.get_pic(retry)
|
|
# 检测文字位置
|
|
small_img, big_img = model.detect(pic_content)
|
|
# 判断点选顺序
|
|
result_list = model.siamese(small_img, big_img)
|
|
point_list = []
|
|
for i in result_list:
|
|
left = str(round((i[0] + 30) / 333 * 10000))
|
|
top = str(round((i[1] + 30) / 333 * 10000))
|
|
point_list.append(f"{left}_{top}")
|
|
# 验证请求
|
|
# 注意 请确保验证与获取图片间隔不小于2s
|
|
# 否则会报 duration short
|
|
result = crack.verify(point_list)
|
|
print(result)
|
|
if eval(result)["data"]["result"] == "success":
|
|
break
|
|
```
|
|
|
|
# 协议
|
|
本项目遵循 AGPL-3.0 协议开源,请遵守相关协议。
|
|
|
|
# 鸣谢
|
|
[ultralytics](https://github.com/ultralytics/ultralytics/) 提供目标检测模型
|
|
|
|
[Siamese-pytorch](https://github.com/bubbliiiing/Siamese-pytorch) 提供孪生网络模型
|
|
|
|
[biliTicker_gt](https://github.com/Amorter/biliTicker_gt) 提供部分思路
|
|
|
|
[https://www.52pojie.cn/thread-1909489-1-1.html](https://www.52pojie.cn/thread-1909489-1-1.html) 提供部分思路
|
|
|
|
ChatGPT 提供逆向支持
|