MarkBlah/smsofdeath

安全

一个 Android 概念验证应用,用于复现手机通信栈的远程拒绝服务崩溃。

117
23
Java
Apache-2.0
今天创建

这是一个安全研究性质的概念验证:一个 Android 应用通过短信发送畸形的 WAP Push 消息,使接收手机的通信进程崩溃。它面向在自有设备或获得明确授权的设备上进行测试,而不是日常工具。

作用与机制

应用把精心构造的 8 字节 WAP Push PDU 作为数据短信发送到端口 2948。在接收端,畸形 PDU 会在 WapPushOverSms.decodeWapPdu 中触发 NegativeArraySizeException,该异常在 InboundSmsHandler 中未被捕获,导致 com.android.phone 进程被杀,正在进行的通话(包括紧急通话)会中断,且受害者无需任何交互。README 给出了确切的载荷字节,并链接到完整的技术分析(README、writeup)。

使用方式

用 ./gradlew assembleDebug 构建,需要 Android SDK 并在 local.properties 中写入 SDK 路径(Android Studio 会自动生成)。生成的 debug APK 安装到发送端设备。在应用内输入目标号码(或从当前 SIM 卡自动填充),选择发送 SIM,然后点击发送。验证在目标设备上进行:通过 adb logcat 过滤相关崩溃日志;作者预期在约 1–2 秒内出现 com.android.phone 的致命异常和 PID 变化,并伴随短暂信号丢失(README)。

要求与边界

  • 应用要求 minSdk 30、targetSdk/compileSdk 35,并申请 SEND_SMS、READ_PHONE_NUMBERS、READ_PHONE_STATE 权限(README)。
  • 发送端需要具备短信能力并授予上述权限;这不是一个与短信栈无关的独立通道。
  • README 没有说明哪些 Android 版本或通信实现会受影响,也没有说明当前版本是否已修复;1–2 秒内崩溃是作者陈述的观察结果,不是对所有设备都成立的保证。
  • 作者明确限定:仅用于经授权的安全研究,以及在自有或获得明确许可的设备上测试(README)。

许可与项目背景

项目采用 Apache-2.0 许可(仓库)。创建于 2026-10-29,当天以 117 个总 star 出现在 HotRepo 的 Java 新项目榜上;这只是一个单日快照,不能说明持续增长或每日增长。目前没有可比的每日榜单历史,因此不对趋势下结论。

本文由 AI 根据项目 README 生成,更新于 2026年10月29日,以项目官方文档为准。