Skip to content

About

短信轰炸测试工具,搭配ddddocr验证码识别模块

Resources

Stars

13 stars

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

Repository files navigation

验证码识别与短信测试工具

一个基于 Python 的自动化验证码识别和短信验证码测试工具,使用 ddddocr 进行图片验证码识别。

项目简介

本项目实现了自动化的图片验证码识别和手机验证码发送功能,支持单次测试和批量轰炸测试模式,并提供了灵活的手机号输入方式(单个输入或TXT文件批量输入)。

功能特性

  • ✅ 自动图片验证码识别:使用 ddddocr 库进行高精度验证码识别
  • ✅ 多种图片格式支持:支持 base64 字符串、bytes 数据、PIL Image 对象
  • ✅ 多种手机号输入方式:支持单个手机号输入和TXT文件批量输入
  • ✅ 灵活的测试模式:
    • 单次测试模式:执行一次完整的验证码识别和短信发送流程
    • 短信轰炸模式:支持单个手机号循环轰炸或TXT文件批量轰炸
  • ✅ 可配置接口:通过 config.py 文件配置API地址和请求头
  • ✅ 实时统计:显示成功/失败次数统计
  • ✅ 交互式菜单:友好的命令行交互界面

项目结构

infohongzha/
├── README.md              # 项目说明文档
├── config.py              # 配置文件(API地址和请求头)
├── verifycode.py          # 验证码识别模块
├── getcode.py             # 获取图片验证码模块
├── main.py                # 主程序(交互式菜单和测试功能)
├── phones.txt             # 示例手机号文件
├── requirements.txt        # 项目依赖
├── .gitignore            # Git忽略文件
└── venv/                  # Python 虚拟环境

核心模块说明

config.py

配置文件,包含API地址和请求头配置。

主要配置:

  • VERIFYCODE_URL: 验证码接口地址
  • BOMB_URL: 爆破接口地址
  • HEADERS: 请求头配置

verifycode.py

验证码识别模块,使用 ddddocr 库实现图片验证码的自动识别。

主要函数:

  • recognize_verifycode(img_encoded): 识别图片验证码
    • 支持输入格式:base64 字符串、bytes 数据、PIL Image 对象
    • 返回识别出的验证码文本

getcode.py

获取图片验证码模块,从指定 API 获取验证码图片并识别。

主要函数:

  • getcode(): 获取并识别图片验证码
    • 返回:(verificationCode, verificationCodeId) 元组

main.py

主程序,提供交互式菜单和多种测试功能。

主要函数:

  • getphonecode(phone, verificationCode, verificationCodeId): 发送手机验证码
  • single_test(phone): 单次测试模式
  • bomb_test_single(phone, count): 单个手机号循环轰炸
  • bomb_test_file(file_path): 从TXT文件读取手机号,每个手机号执行一次
  • get_phone_input(): 获取手机号输入(单个或文件)
  • main(): 交互式主菜单

环境要求

  • Python 3.7+
  • requests
  • ddddocr
  • Pillow

安装步骤

  1. 克隆或下载项目
cd e:\project\infohongzha
  1. 创建虚拟环境(推荐)
python -m venv venv
  1. 激活虚拟环境

Windows:

venv\Scripts\activate

Linux/Mac:

source venv/bin/activate
  1. 安装依赖
pip install -r requirements.txt

或手动安装:

pip install requests ddddocr Pillow

使用方法

运行主程序

python main.py

交互式菜单

启动程序后,会显示以下菜单:

==================================================
手机验证码测试工具
==================================================
1. 单次测试
2. 短信轰炸测试
0. 退出
==================================================

请选择模式 (0/1/2):

手机号输入方式

程序支持两种手机号输入方式:

  1. 单个手机号输入:直接输入一个手机号码
  2. TXT文件批量输入:从TXT文件中读取多个手机号码

模式说明

1. 单次测试模式

执行一次完整的测试流程:

单个手机号输入:

  1. 选择单个手机号输入方式
  2. 输入手机号
  3. 自动获取并识别图片验证码
  4. 发送手机验证码
  5. 显示测试结果

TXT文件批量输入:

  1. 选择从TXT文件读取方式
  2. 输入TXT文件路径
  3. 程序读取文件中的所有手机号
  4. 对每个手机号执行一次完整的测试流程
  5. 显示统计结果

示例:

请选择模式 (0/1/2): 1

请选择手机号输入方式:
1. 单个手机号
2. 从TXT文件读取
请选择 (1/2): 1
请输入手机号: 15332261234

==================================================
开始单次测试 - 手机号: 15332261234
==================================================
识别出的验证码: ABCD
状态码: 200
响应内容: {"code":"0","msg":"成功"}
✓ 测试成功

2. 短信轰炸测试模式

提供两种轰炸方式:

单个手机号循环轰炸:

  1. 选择单个手机号输入方式
  2. 输入手机号
  3. 输入轰炸次数
  4. 确认操作
  5. 自动循环执行指定次数
  6. 显示统计结果

TXT文件批量轰炸:

  1. 选择从TXT文件读取方式
  2. 输入TXT文件路径
  3. 确认操作
  4. 程序读取文件中的所有手机号
  5. 对每个手机号执行一次轰炸(不循环)
  6. 显示统计结果

示例(单个手机号循环轰炸):

请选择模式 (0/1/2): 2

请选择手机号输入方式:
1. 单个手机号
2. 从TXT文件读取
请选择 (1/2): 1
请输入手机号: 15332261234
请输入轰炸次数: 10

确认对 15332261234 进行 10 次轰炸?(y/n): y

==================================================
开始短信轰炸测试 - 手机号: 15332261234
轰炸次数: 10
==================================================

[第 1/10 次轰炸]
...
[第 10/10 次轰炸]

==================================================
轰炸测试完成
总计: 10 次
成功: 8 次
失败: 2 次
==================================================

示例(TXT文件批量轰炸):

请选择模式 (0/1/2): 2

请选择手机号输入方式:
1. 单个手机号
2. 从TXT文件读取
请选择 (1/2): 2
请输入TXT文件路径: phones.txt

将从文件 phones.txt 读取手机号,每个手机号执行一次轰炸
确认执行?(y/n): y

==================================================
从文件读取到 3 个手机号
==================================================

[处理第 1/3 个手机号: 13800138000]
...
[处理第 3/3 个手机号: 15000150000]

==================================================
批量轰炸测试完成
总计: 3 个手机号
成功: 2 个
失败: 1 个
==================================================

0. 退出模式

退出程序。

手机号文件格式

TXT文件格式要求:

  • 每行一个手机号
  • 支持中文注释(以#开头)
  • 空行会被忽略

示例(phones.txt):

# 手机号列表文件
# 每行一个手机号,支持中文注释
# 示例:
13800138000
13900139000
15000150000

配置说明

通过修改 config.py 文件可以自定义API地址和请求头:

# 验证码接口地址
VERIFYCODE_URL = "https://example.com/api/getVerificationCode"

# 爆破接口地址
BOMB_URL = "https://example.com/api/getPhoneCode"

# 请求头配置
HEADERS = {
    'User-Agent': 'Your User Agent',
    'Accept': 'application/json, text/plain, */*',
    # 其他请求头...
}

API 接口

程序使用以下 API 接口:

  • 获取验证码: POST https://ljiei.hrbeu.edu.cn/api/sysUser/getVerificationCode
  • 发送手机验证码: POST https://ljiei.hrbeu.edu.cn/api/sysUser/getPhoneCode

注意事项

⚠️ 重要提示:

  • 本工具仅供学习和测试使用
  • 请勿用于非法用途或骚扰他人
  • 使用前请确保遵守相关法律法规
  • 建议在测试环境中使用
  • 请保护好个人隐私信息
  • 使用TXT文件批量轰炸时,每个手机号只执行一次,不会循环轰炸

常见问题

1. 验证码识别失败

  • 检查网络连接是否正常
  • 确认 ddddocr 库已正确安装
  • 查看验证码图片是否清晰

2. 短信发送失败

  • 检查手机号格式是否正确
  • 确认验证码识别是否准确
  • 查看网络请求响应状态码

3. 文件读取失败

  • 检查文件路径是否正确
  • 确认文件编码为UTF-8
  • 检查文件格式是否符合要求

4. 程序运行错误

  • 确认 Python 版本符合要求
  • 检查所有依赖库是否已安装
  • 查看错误日志信息

技术栈

  • 语言: Python 3
  • HTTP 请求: requests
  • 验证码识别: ddddocr
  • 图像处理: Pillow (PIL)

许可证

本项目仅供学习交流使用。

联系方式

如有问题或建议,欢迎提出 Issue。


最后更新: 2024

About

短信轰炸测试工具,搭配ddddocr验证码识别模块

Resources

Stars

13 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages