news 2026/8/22 2:27:31

smsBomb 短信轰炸机:11 家服务商,4 条命令跑通

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
smsBomb 短信轰炸机:11 家服务商,4 条命令跑通

smsBomb 短信轰炸机:11 家服务商,4 条命令跑通

【免费下载链接】smsBomb短信💣炸🐔项目地址: https://gitcode.com/gh_mirrors/sms/smsBomb

把一批泄露的短信通道一晚验完 📮

半夜有人把一份泄露的短信渠道清单丢过来,问这些通道现在还能不能发。逐家手写签名、改手机号、发请求验证,跑两家就得耗掉一下午。smsBomb 把这件事压成了一条命令:它把十余家短信服务商的发送接口封装成插件,从本地配置里按权重抽取通道,用多进程把验证码短信批量发出去,再用彩色日志标出每一步的结果。整台机器只有三层:插件、调度、日志。

先看懂这台机器的三层构造 ⚙️

干什么位置
插件层每个文件实现一家服务商的签名与发送,统一返回 True/FalsesmsBomb/plugins/下 11 个 .py
调度层加权随机抽节点、多进程并发、失败降权、失败率熔断smsBomb/smsBomb.py
输出层coloredlogs 按级别上色,格式固定为[级别 时间 模块:行号] 内容同上文件的setup_logger

把 smsBomb 想成一个快递调度中心:config/sms.json里的每个节点是一个快递站点,短信是包裹,weight 是分配给该站点的派件份额。节点"退件"(请求失败)不会直接报废,份额被调低一档;调到 0 就进停用名单;所有节点都停用时,调度中心还会把名单翻出来重新派一遍。

插件这边,它做的事其实很简单——配置里写product: "aliyun",程序就去加载对应插件并调用它的 send 方法。技术上这叫插件化(plugin architecture),plugins/aliyun.py 里能看到从拼参数到 HMAC-SHA1 签名的完整实现。选节点那步做的事其实很简单——把每个节点按 weight 复制若干份放进池子,随机抽一份。技术上这叫加权随机选择(weighted random selection),实现在SmsBomb._random_weight_select里。另外还有一条保命红线:失败次数除以目标次数,超过 0.95 就停手。技术上这叫熔断(circuit breaker),阈值写死在max_allowed_failed_rate字段。

从克隆到跑通只要 4 条命令 🚀

环境要求 Python 3.6 及以上,不兼容 2.x;多版本机器建议用 PyEnv 或 Anaconda 隔离一个干净环境。

跑完这一步,本地应出现 smsBomb 目录,里面有configsmsBomb两个关键子目录。

git clone https://gitcode.com/gh_mirrors/sms/smsBomb

这一步把 11 个服务商插件和 19 个示例节点配置全部拿到手。

这一步没有输出,跑完当前路径应停在仓库根目录。

cd smsBomb

默认配置路径config/sms.json是相对当前目录解析的,不在根目录跑会直接报"配置不可为空"。

装完终端只回显依赖安装成功的几行。

pip install -r requirements.txt

CLI 版依赖只有 requests 和 coloredlogs 两个包;GUI 依赖在requirements-gui.txt,需要时再装。

预期你会先看到 DEBUG 级的"成功加载配置文件",随后 INFO 级打印目标号码,日志开始滚动。

python -m smsBomb -t 13800138000 -n 3 -vv

-n 3表示只发 3 条,-vv打开 DEBUG 日志,第一次跑用它能把调度全过程看清;目标号码建议用自己的。完整参数面板如下,第一次用记住前两个就够:

参数作用默认值
-t / --target目标手机号,必填
-n / --times发送次数10
-p / --product指定服务商,如 netease全部节点加权随机
-c / --config配置文件路径config/sms.json
--process并发进程数5
-m / --message自定义短信内容,仅对enable_custom_msg: true的节点生效
-x / --proxyHTTP/HTTPS 代理自动读环境变量
-v / -vv / -vvv日志详细程度0(WARNING 起)

把彩色日志逐行读明白 🌈

日志由 coloredlogs 上色,颜色即级别:绿色 DEBUG、蓝或白 INFO、黄色 WARNING、红色 ERROR,扫一眼颜色就能判断程序状态。

-vvv跑一次,滚过去的日志大致长这样(从仓库截图节选):

[DEBUG 2018-05-31 11:29:17 root:26] 成功加载配置文件:config/sms.json,产品: None [INFO 2018-05-31 11:29:17 smsBomb.smsBomb:187] Start attacking phone: 138**** [DEBUG 2018-05-31 11:29:17 smsBomb.plugins.aliyun.AliyunPlugin:88] 拼接完成请求体: Signature=... [INFO 2018-05-31 11:29:17 smsBomb.plugins.aliyun.AliyunPlugin:92] {'Message': 'OK', 'Code': 'OK', ...} [DEBUG 2018-05-31 11:29:17 root:168] 攻击进度(成功数/期望攻击次数): 1/2 = 50.00%, ...

行尾的"模块名:行号"能直接定位到是哪一行代码打的这条日志,排查时非常好用。

你看到的行它实际在说
Start attacking phone: ...任务已入队,目标号码确认
拼接完成请求体: Signature=...插件完成签名,请求即将发出
{'Message': 'OK', 'Code': 'OK'}服务商接单,这条计为成功
节点{...}请求失败,尝试降低此配置的优先级该节点被降权 1 档并移入失败名单

详细程度由-v的个数控制,级别越往上调看得越多:

命令生效级别多出来的信息
不带-vWARNING节点失败警告、无可用配置提示
-vINFO任务开始/结束、服务商返回的 JSON
-vvDEBUG进度百分比、拼接完成的请求体
-vvvDEBUG(含 requests 库)连接建立等传输层细节

把 config/sms.json 的字段与节点权重拆开看 📦

这是整台机器唯一需要改的文件。它是一个 JSON 数组,每个元素代表一个可用节点:

字段类型含义
productstring产品名,必填,决定交给哪个插件处理
descstring人类可读的描述,随便写
sourcestring配置出处,便于溯源核对
authobject密钥键值对,key 名随服务商而变
payloadsobject提交的请求参数,模板、签名等
apistring请求地址,不写则用插件内置默认值
methodstring请求方式,默认 GET
weightint派单权重,默认 1,越大越常被选中;0 表示停用
enable_custom_msgbool是否把-m的内容当短信正文发,默认 false

哪些能直接用:productpayloadsapi的结构可以照抄现有示例;哪些必须改:auth里的密钥。仓库自带的这份配置年久失修,除阿里云外多数节点已失效,README 自己也承认了,需要按source字段给的线索或自行检索新的密钥补进去。

新增节点照下面这份骨架填,填完丢回数组即可:

{ "product": "aliyun", "auth": {"app_key": "你的AccessKeyId", "app_secret": "你的Secret"}, "payloads": { "template_code": "SMS_114035014", // 模板编号,来自服务商后台 "sign_name": "你的签名", "template_params": {"code": "123456"} } }

product写成 aliyun 后,程序会自动交给 AliyunPlugin 处理,签名和请求体拼装都不用你管。要接完全没有插件的小众服务商,就用product: "normal",在payloads里用{{mobile}}{{content}}占位符,替换逻辑在plugins/normal.py里。

把速度、代理和回调调到顺手 ⚡

默认 5 个进程、10 次发送,想快一点只需要动两个参数。

把并发进程数拉起来

进程数会自动取"你设的值"和"发送次数"中的较小者,不会多开无用进程。

跑完这一步,终端应看到多个 worker 交替输出请求日志,总耗时明显缩短。

python -m smsBomb -t 13800138000 -n 20 --process 8 -vv

把请求挂上 HTTP 代理

不传-x时程序自动读HTTP_PROXYHTTPS_PROXY环境变量,两者都没有才直连。

预期你会看到请求经由代理发出,-vvv下连接日志里会出现代理地址。

python -m smsBomb -t 13800138000 -n 3 -x http://127.0.0.1:7890 -vv

把进度回调接进自己的系统

start()每完成一次派单就会调一次内置回调(往日志里打进度),传入自己的函数即可替换,参数是(成功数, 失败数, 总数, finished)。

这段代码嵌进你自己的脚本里,跑完会多出一行汇总,方便对接监控系统。

def my_cb(success, failed, total, finished=False): if finished: print("done: success=%d failed=%d" % (success, failed)) sms_bomb.start(cb=my_cb)

不想敲命令,还有一条python -m smsBomb.gui能打开 Kivy 图形界面:填号码、次数、进程数,点按钮开跑,进度条直接画在界面上。作者标注过 GUI 未经严格测试,正式操作还是建议走命令行。

把常见报错一次对号入座 🧯

出问题时先盯日志里黄色和红色的行,下表覆盖最高频的几种情况:

现象原因对策
报"短信轰炸机配置不可为空"配置文件为空数组,或-c指到的路径不存在python -m json.tool config/sms.json验证内容,换存在的-c路径
日志出现"无此插件:XxxPlugin,跳过"product与插件类名对不上(类名 = 产品名首字母大写 + Plugin)把 product 改成plugins/下已有的插件文件名
日志出现"没有可用配置可供使用",任务提前结束节点密钥全部失效,权重被逐一降到 0替换 auth 与 payloads,把 weight 改回 1
日志只有寥寥几行,看不到进度默认级别是 WARNING,进度行在 DEBUG-vv
HTTP 返回 200 却被判失败各插件按响应体判成败(如阿里云要求Code == 'OK'),200 不等于发成功-vv看该节点返回的 JSON,按服务商错误码定位
GUI 里日志不显示Kivy 收集控制台输出的已知限制用同样参数回 CLI 排查

回到那批待验证的通道 🎬

开头那批通道清单,现在只需要把新密钥填进config/sms.json,跑一条带-vv的命令,日志里就能看到每个节点被逐一判定的过程。想继续往下读,从 smsBomb/smsBomb.py 的加权随机与 95% 熔断逻辑看起,再翻plugins/aliyun.py的签名实现,关键路径基本就覆盖了。

⚠️ 仅供学习研究,请勿用于非法用途。

【免费下载链接】smsBomb短信💣炸🐔项目地址: https://gitcode.com/gh_mirrors/sms/smsBomb

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/22 2:26:03

GetQzonehistory:把 QQ 空间历年说说批量导出为 Excel 与图片的方法

GetQzonehistory:把 QQ 空间历年说说批量导出为 Excel 与图片的方法 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 翻遍手机相册也找不到大学时发的那条说说,QQ…

作者头像 李华
网站建设 2026/8/22 2:25:30

2026年中央供料设备管理平台大揭秘,这些亮点你不能错过!

在现代工业生产中,中央供料设备对于提高生产效率、保障产品质量起着至关重要的作用。然而,当前中央供料设备领域面临着诸多技术挑战,阻碍着行业的进一步发展。行业痛点分析目前,传统中央供料设备智能化程度不足,多数依…

作者头像 李华
网站建设 2026/8/22 2:24:22

自我改进智能体的脆弱性:方差、任务顺序与欠指定的影响分析

在实际的机器学习与强化学习项目中,我们常常会接触到“自我改进智能体”这一概念。这类智能体被设计为能够通过与环境交互,利用自身生成的经验来优化其策略或模型,从而实现性能的持续提升。这听起来是迈向通用人工智能的关键一步。然而&#…

作者头像 李华
网站建设 2026/8/22 2:23:14

AI与数学双向赋能:从理论框架到工程实践指南

这次我们来看一个关于人工智能与数学交叉领域的前沿话题,它并非一个具体的开源项目,而是一个由顶尖数学家陶哲轩提出的深刻见解。这个话题的核心在于探讨AI技术如何改变数学研究、学习和应用的方式,以及数学如何为AI的发展提供坚实的理论基础…

作者头像 李华
网站建设 2026/8/22 2:21:59

一站式穿搭集合店2026女人街性价比优质女装推荐

在丹东女人街寻找新中式穿搭时,“款式新”与“性价比”往往是消费者最关注的两大核心。面对琳琅满目的店铺,如何精准锁定既符合当下流行趋势、又能兼顾价格优势的选择?丹东市元宝区缤之缤服饰店(BINBIN缤缤服饰)凭借其…

作者头像 李华
网站建设 2026/8/22 2:19:44

美赛备战指南:从信息降噪到模型构建的系统性方法论

1. 项目概述:一次竞赛前的系统性知识梳理又到了一年一度美赛(MCM/ICM)开赛的时候。对于全球数以万计的大学生队伍来说,这96小时不仅是智力与耐力的极限挑战,更是一场关于信息检索、模型构建与论文写作的综合战役。每年…

作者头像 李华