PentHertz/RF-Swift
GitHub: PentHertz/RF-Swift
跨平台容器化射频安全工具箱,无需专用操作系统即可快速部署无线、电信及硬件安全工具。
Stars: 287 | Forks: 15
# 🚀 RF Swift 📡
https://github.com/user-attachments/assets/518c5045-4380-48d0-a731-6ec0273a02c5
## 🔍 什么是 RF Swift?
RF Swift 是一个革命性的工具箱,无需专用操作系统即可将任何计算机转变为强大的 RF 测试实验室。🔄 与强迫你牺牲主操作系统的传统方法不同,RF Swift 将容器化的 RF 工具带入你现有的环境中。🏠
### ⚡ 为什么 RF Swift 优于专用 OS 方案
| 特性 | RF Swift | 专用 OS |
|---------|---------|------------------------------|
| **🏠 主机 OS 保留** | ✅ 保留现有 OS | ❌ 需要专用分区或 VM |
| **🛡️ 工具隔离** | ✅ 工具被容器化,不影响系统 | ❌ 工具可能破坏系统稳定性 |
| **⚡ 部署速度** | ✅ 秒级部署 | ❌ 完整安装需数小时 |
| **💾 磁盘空间** | ✅ 仅安装所需工具 | ❌ 至少需要 20-50GB |
| **🔄 更新** | ✅ 无风险更新单个工具 | ❌ 系统级更新可能破坏功能 |
| **🌐 多架构** | ✅ 支持 x86_64, ARM64, RISCV64 等! | ❌ 架构支持有限 |
| **🔁 可复现性** | ✅ 环境处处一致 | ❌ 安装之间存在系统漂移 |
| **💼 工作环境** | ✅ 可与生产力工具并存使用 | ❌ 需在系统间切换上下文 |
| **📹 会话录制** | ✅ 内置录制功能用于文档记录 | ❌ 需手动设置 |
| **🎨 易于定制** | ✅ 简单的 YAML 配方用于自定义镜像 | ❌ 复杂的 OS 修改 |
## ✨ 核心特性
### 核心能力
- **🏠 非侵入式集成**:在继续使用你偏好的 OS 进行日常工作的同时,运行专业的 RF 工具
- **🧩 模块化工具选择**:仅在需要时部署所需的工具
- **🛡️ 容器化隔离**:防止 RF 工具影响系统稳定性或安全性
- **🌍 跨平台兼容性**:在 Linux、Windows 和 macOS 上无缝运行
- **🔌 动态硬件集成**:无需重启即可连接和断开 USB 设备
- **⚡ GPU 加速**:提供支持 Intel 和 NVIDIA GPU 的 OpenCL 专用镜像
- **💾 空间效率**:仅占用专用 OS 方案所需磁盘空间的一小部分
### 🐳🦭 Container Engine 支持
RF Swift 支持 **Docker 和 Podman** 两种容器引擎,让你可以自由选择最适合你环境的运行时:
| | Docker | Podman |
|---|---|---|
| **架构** | Client-server daemon | Daemonless, fork-exec |
| **Root 权限要求** | 是(daemon 以 root 运行) | 否(默认 rootless) |
| **兼容性** | 行业标准 | OCI 兼容,可直接替换 |
| **适用场景** | 广泛生态系统,Windows/macOS | 安全优先,离线环境,嵌入式 |
#### 自动检测
RF Swift 在启动时**自动检测**可用的容器引擎。如果两者都安装了,默认使用 Docker。可通过以下方式覆盖:
```
rfswift --engine podman run -n mycontainer -i penthertz/rfswift_noble:sdr_light
rfswift --engine docker run -n mycontainer -i penthertz/rfswift_noble:sdr_light
```
#### Podman 支持示例
https://github.com/user-attachments/assets/14b6d50f-5250-420e-94e4-474991113372
#### Podman 亮点
- **Rootless 容器**:无 daemon,无 root — 非常适合锁定的环境和共享实验室机器
- **OCI 兼容镜像**:所有现有的 RF Swift 镜像均可与 Podman 开箱即用
- **无缝设备直通**:USB SDR dongle、串口适配器和 GPU 在两种引擎上均可工作
- **自动 cgroup 处理**:RF Swift 检测 cgroup v1/v2 并相应配置设备访问规则
#### 快速设置
```
# 使用交互式安装程序安装(提供 Docker、Podman 或两者)
curl -fsSL "https://raw.githubusercontent.com/PentHertz/RF-Swift/refs/heads/main/get_rfswift.sh" | sh
# 或者手动安装 Podman
sudo apt install podman # Debian/Ubuntu
sudo dnf install podman # Fedora/RHEL
sudo pacman -S podman # Arch Linux
brew install podman # macOS
```
## 🎬 演示视频
### 🐧 在 Linux 上
https://github.com/PentHertz/RF-Swift/assets/715195/bb2ccd96-b688-4106-8fba-d82f84ff1ea4
### 🪟 在 Windows 上(使用 GQRX)
https://github.com/PentHertz/RF-Swift/assets/715195/25a4a857-aa5a-4daa-9a08-28fa53d2f799
### 🖥️ 使用 Intel 或 NVIDIA GPU 的 OpenCL

## 📦 可用的专用镜像
RF Swift 的容器方法允许针对特定任务优化的专用环境。所有镜像均为 **OCI 兼容**,并可与 **Docker 和 Podman** 配合使用。
```
graph TD;
A[corebuild]-->B[sdrsa_devices];
A-->C[rfid];
A-->D[automotive];
A-->E[reversing];
A-->H[network];
B-->I[sdr_light];
B-->J[bluetooth];
B-->K[telecom_utils];
B-->L[hardware];
H-->M[wifi];
I-->N[sdr_full];
K-->P[telecom_2Gto3G];
K-->Q[telecom_4G_5GNSA];
K-->R[telecom_4Gto5G];
K-->S[telecom_5G];
```
| 类别 | 镜像 | 核心工具 |
|----------|--------|-----------|
| 📻 **SDR** | `sdr_light`, `sdr_full` | GNU Radio, GQRX, SDR++, SDRangel, SigDigger, CyberEther, Inspectrum, URH, rtl_433, dump1090, GNSS-SDR, SatDump, Jupyter + 50+ GNU Radio OOT modules (gr-gsm, gr-lora, gr-satellites, gr-ieee802-11, gr-droneid, gr-tempest, …) |
| 📡 **SDR 设备** | `sdrsa_devices` | Drivers for USRP (UHD), RTL-SDR, HackRF, BladeRF, Airspy, LimeSDR, PlutoSDR, XTRX, RFNM, HydraSDR, LiteX M2SDR, SignalHound, Harogic, LibreSDR, SoapySDR |
| 📱 **电信** | `telecom_utils`, `telecom_2Gto3G`, `telecom_4G_5GNSA`, `telecom_4Gto5G`, `telecom_5G` | PySIM, pycrate, srsRAN 4G/5G, Open5GS, UERANSIM, YateBTS, OpenBTS, OsmoCom BTS Suite, SigPloit, PyHSS, SCAT, jSS7, 5Greplay |
| 📶 **蓝牙** | `bluetooth` | BlueZ, WHAD, Mirage, Sniffle, Bluing, bdaddr, ice9-bluetooth, esp32 BT Classic sniffer |
| 📡 **Wi-Fi** | `wifi` | Aircrack-ng, hcxdumptool, Reaver, Bully, Pixiewps, EAPHammer, Airgeddon, Wifite2, WPA3 attack suite (Dragonslayer/Dragonforce/Wacker), Hostapd-mana, Wifiphisher |
| 🏷️ **RFID** | `rfid` | Proxmark3 (RRG/Iceman), libnfc, mfoc, mfcuk, RFIDler, miLazyCracker |
| 🚗 **汽车** | `automotive` | can-utils, CANtact, Caring Caribou, SavvyCAN, Gallia, V2GInjector |
| 🔧 **硬件** | `hardware` | PulseView, DSView, Logic 2 (Saleae), Arduino IDE, Flashrom, OpenOCD, esptool, openFPGALoader, MTKClient, ngscopeclient, dfu-util, SeerGDB, AVRDUDE |
| 🔍 **逆向** | `reversing` | Ghidra, Radare2, Cutter, ImHex, Binwalk (v2+v3), Unblob, AFL, Honggfuzz, Semgrep, Joern, Kaitai Struct, Qiling, Unicorn/Keystone |
| 🌐 **网络** | `network` | Nmap, Wireshark, Metasploit, Burp Suite, Caido, Impacket, NetExec, Responder, Hashcat, John the Ripper, Kismet, Bettercap, SIPVicious, MBTget |
包含详细工具清单的完整镜像列表可在 [rfswift.io/docs/guide/list-of-tools/](https://rfswift.io/docs/guide/list-of-tools/) 查看
## 🌟 真实用例
### 👔 为专业人士
- **🧰 快速评估部署**:在几分钟内在客户现场部署完整的 RF 实验室
- **🔄 环境一致性**:消除“在我机器上能跑”的问题
- **⚙️ 并行测试**:同时运行多个隔离的评估任务
- **📹 文档记录**:内置会话录制用于客户报告
- **🛠️ 定制工具集**:为特定项目创建专用容器
### 🔬 为研究人员
- **📊 可复现研究**:随论文共享精确的工具环境
- **🧪 实验隔离**:保持实验配置相互独立
- **🌐 跨平台协作**:跨 Linux、Windows 和 macOS 工作
- **🔢 版本控制**:使用特定工具版本进行测试以确保复现性
- **⚡ 资源优化**:根据研究需求分配资源
### 👨🏫 为教育工作者
- **🏫 课堂部署**:为所有学生提供一致的环境
- **💻 无需重装 OS**:学生保留现有操作系统
- **🖥️ 低配置要求**:可在标准实验室计算机上运行
- **📚 专注学习**:针对特定课程定制容器
- **🔄 快速重置**:在课次间轻松重置环境
### 🏭 为制造与 QA
- **🔍 生产测试**:一致的 RF 测试环境
- **📡 设备验证**:测试无线产品合规性
- **🔧 固件分析**:隔离的固件测试环境
- **📊 质量保证**:可复现的测试配置
### 🔒 为安全敏感环境
- **🦭 Rootless with Podman**:无需特权 daemon — 非常适合 SOC 合规和加固系统
- **🏔️ 离线实验室**:预拉取镜像,利用 Podman 的 daemonless 架构在离线状态下部署
- **🛡️ 最小攻击面**:无需保护长期运行的 daemon socket
## 📖 文档
综合文档可在 [rfswift.io](https://rfswift.io/) 获取,包括:
- 🚀 [入门指南](https://rfswift.io/docs/getting-started/)
- 🏁 [快速入门教程](https://rfswift.io/docs/quick-start/)
- 📘 [用户指南](https://rfswift.io/docs/guide/)
- 📝 [YAML 配方指南](https://rfswift.io/docs/development/yaml-recipe-guide/)
- 👨💻 [开发文档](https://rfswift.io/docs/development/)
- 🧰 [包含工具列表](https://rfswift.io/docs/guide/list-of-tools/)
- 🛡️ [安全准则](https://rfswift.io/docs/security/)
## 🎓 培训与研讨
RF Swift 被 Penthertz 用于专业培训课程:
- 📻 软件定义无线电评估
- 📱 移动网络安全测试
- 🚗 汽车安全分析
- 🏭 IoT 和嵌入式设备测试
[联系我们](https://penthertz.com/) 获取定制培训计划。
## 👥 社区与支持
- 💬 [加入我们的 Discord](https://discord.gg/NS3HayKrpA) 获取社区支持和讨论
- 🐛 在 GitHub 上 [报告问题](https://github.com/PentHertz/RF-Swift/issues)
- 💡 通过 GitHub Discussions [请求功能](https://github.com/PentHertz/RF-Swift/discussions)
- 🐦 在 X (Twitter) 上关注我们:[@FlUxIuS](https://x.com/FlUxIuS) 和 [@Penthertz](https://x.com/Penthertz)
- 📧 商业咨询:[penthertz.com](https://penthertz.com/)
## 🤝 贡献
我们欢迎贡献!以下是你可以提供帮助的方式:
### 代码贡献
- 🧰 **工具集成**:添加新工具或改进现有工具
- 🐞 **Bug 修复**:提交 PR 以修复已报告的问题
- ✨ **新功能**:实现新功能
- 📝 **文档**:改进指南和示例
### 社区贡献
- 📝 **YAML 配方**:分享你的自定义镜像配方
- 🎓 **教程**:为特定工具或工作流创建指南
- 🐛 **Bug 报告**:报告你遇到的问题
- 💡 **功能请求**:提出改进建议
### 开始贡献
1. Fork 仓库
2. 创建功能分支 (`git checkout -b feature/amazing-feature`)
3. 提交更改 (`git commit -m 'Add amazing feature'`)
4. 推送到分支 (`git push origin feature/amazing-feature`)
5. 打开 Pull Request
## ⚖️ 许可证
RF Swift 基于 GNU General Public License v3.0 发布。详见 [LICENSE](LICENSE) 文件。
## 🙏 致谢
特别感谢:
- 所有帮助改进 RF Swift 的贡献者和客户
- 其工作被我们集成的开源 RF 和安全工具开发者
- 提供反馈、Bug 告和功能请求的社区
- 邀请我们进行演讲的会议组织者
标签:Apple Silicon, ARM64, Black Hat Arsenal, BladeRF, Docker容器, EVTX分析, EVTX分析, GNU Radio, HackRF, IoT安全, JA3, Linux安全工具, macOS安全工具, RF Swift, RISC-V, RTL-SDR, SDR工具集, SDR软件无线电, Windows安全工具, 便携式工具箱, 信号分析, 多架构支持, 射频安全, 射频渗透测试, 嵌入式安全, 攻击面发现, 无线安全评估, 无线渗透, 无线电工具箱, 无线电监测, 日志审计, 电磁频谱, 硬件黑客, 请求拦截, 通信安全, 防御绕过, 频谱分析
