thomasbuilds/Spectre

GitHub: thomasbuilds/Spectre

一款 Android 射频环境扫描应用,集成了蜂窝基站、WiFi、蓝牙、GNSS 的实时监测与本地网络探测功能,并提供主动式 BLE 测试工具。

Stars: 14 | Forks: 1

![Spectre 横幅](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/1f813882e2005013.png) Spectre 在一处为您展示周围的无线电环境:您的手机能看到的蜂窝基站、附近的 WiFi 接入点、Bluetooth LE 设备以及头顶的 GNSS 卫星。它还通过功率求和计算出一个实时的“射频暴露”数值,所有这些计算均在设备本地完成。 ## 安装 要求 **Android 12** (API 31) 或更高版本。 1. 从 [github 发布页](https://github.com/thomasbuilds/Spectre/releases/latest)下载 APK。 2. (可选)根据发布版本中的 [`CERT.sha256`](CERT.sha256) 指纹验证 APK 的签名证书。 3. 在手机上打开该文件,并在 Android 提示时允许来自未知来源的安装。 4. 启动 Spectre 并授予其请求的权限。 ## 功能 - **实时射频暴露仪表盘。** 用一个单一的数字表示跨蜂窝网络、WiFi 和 Bluetooth 的总接收射频功率,并根据强度进行颜色区分。 - **蜂窝网络。** 显示 5G、4G、3G 和 2G 基站,包含运营商、基站标识符、频段、参考测量值(RSRP/RSRQ/SINR 以及 3G/2G 的等效值),并在可用时提供定时提前量距离估算。支持双 SIM 卡。 - **WiFi。** 显示跨越 2.4、5 和 6 GHz 频段的接入点,包含安全性(WPA、WPA2、WPA3、OWE、WEP、Open)、WPS 和管理帧保护状态、信道和宽度,以及距离估算。提供您所连接网络的实时信号强度,并在硬件支持的情况下,通过 802.11mc FTM 进行真实测距。 - **Bluetooth LE。** 显示广播设备,包含名称、地址、信号强度、地址类型、PHY、服务 UUID,以及解码后的制造商数据(Apple、Google、Microsoft 等),包括 iBeacon 字段。GATT 检查器可以连接到设备、枚举其服务和特征、读取它们的值,并支持向可写的特征写入数据。 - **GNSS。** 支持多星座追踪(GPS、GLONASS、Galileo、BeiDou、QZSS、NavIC、SBAS)并支持双频,提供载噪比、仰角和方位角、定位使用状态,以及为每颗卫星计算的星下点。 - **本地网络探测。** 通过在常见端口上进行 TCP 连接探测来发现主机,支持抓取 Banner 和反向 DNS;同时包含 mDNS / DNS-SD 服务发现和 SSDP / UPnP 发现,所有操作均限于您所连接的 LAN。 - **主动式 BLE 工具。** 包含一个支持配置 UUID、major、minor 和测量功率的 iBeacon 广播器,以及上述的 GATT 读写检查器。这些功能仅供用于您自己的设备和经过授权的测试。 ## Android 的限制 **信号强度是参考测量值,而非总功率。** 调制解调器报告的是 RSRP (4G/5G) 或 RSCP (3G),即单一参考元素的功率,而不是整个信道的功率。Spectre 会根据网络类型重建一个宽带估算值。LTE 在调制解调器公开其 RSSI 时使用该值,否则使用基于带宽推算的偏移量。NR (5G) 使用固定偏移量,因为 Android 根本不公开 NR 信道带宽。WCDMA 从 Ec/No 推导该值,而 GSM 已经是一个总功率数值。结果通常在真实值的几分贝误差范围内。 **功率不能以 dBm 直接相加。** dBm 是对数值,因此直接将各个发射源的强度相加是没有意义的。Spectre 会将每个值转换为线性功率(毫瓦),相加后再转换回去,因此暴露数值主要由最强的发射源决定,这对于总接收功率来说是物理上正确的结果。蜂窝网络的读数会首先被标准化为上述的宽带等效数值,因此它们可以与 WiFi 和 Bluetooth 进行比较。 **5G NSA 是不可见的。** 在大多数 5G 网络中,手机依赖于 4G 锚点基站并在此基础上叠加 5G 载波,而 Android 仅向应用公开 4G 锚点。因此,对于已连接的 5G NSA 基站,所显示的强度是锚点的强度,而不是承载数据的 5G 信号。只有独立组网的 5G (5G SA) 才能返回真实的 5G 读数。这一点无法绕过,因此应用中已对此作出了明确说明。 **只会出现您运营商的基站。** 调制解调器仅解码您的 SIM 卡网络及其漫游合作伙伴所使用的频段,因此其他运营商的基站永远不会显示。Android 的电话 API 默认也只报告单个订阅,因此 Spectre 会监控每一个活动的 SIM 卡,以涵盖双 SIM 卡手机上的两家运营商。 **WiFi 扫描限制。** Android 将应用限制为每两分钟大约只能进行四次 WiFi 扫描。在启用限制的情况下,Spectre 会将自身节奏控制在每 30 秒左右扫描一次;如果在“开发者选项”中禁用了限制,扫描速度会更快。它还会消耗系统启动的扫描结果,因此即使自己的扫描受到限制,列表也会不断更新。 **距离不会直接提供给您。** Android 不提供大多数发射源的距离。Spectre 在有真实测距数据时(如 WiFi 802.11mc FTM、蜂窝网络定时提前量)使用该数据,否则使用校准过的路径损耗模型(如果存在 iBeacon 测量功率字段也会一并参考),并为每个估算值标注置信度,以便您区分它们。 ## 赞助 Spectre 是免费且无广告的。非常欢迎您为其后续开发提供捐赠。 - Bitcoin: `bc1qphgd8leqsf06qlm6jjxpuw2rtq9f9hdjnhfluh` - Monero: `85fzziWM1pH77HWHNhE6aAN9uaHrLL7CMFA72rVecmMDR1fUjfv9YmS6GGeiV3hDEn7e9d8v4hfMSRmmEp171fpR4nipNfZ`
标签:Android, DSL, 侦察工具, 射频扫描, 无线网络, 移动应用, 蓝牙