rfhs/challengectl

GitHub: rfhs/challengectl

challengectl 是一个用于 RFCTF 活动的 SDR 挑战控制器,按计划在多台无线电设备上排队并自动发射各类射频信号。

Stars: 15 | Forks: 2

[![WAV 格式检查](https://static.pigsec.cn/wp-content/uploads/repos/cas/dd/dd59fac9b622faf950b461ac2eba666b459301b534d6c10b3c5cc2f805c7311a.svg)](https://github.com/rfhs/challengectl/actions/workflows/wav-format-check.yaml) # challengectl 为 RFCTF 排队挑战并调度 gr-osmosdr 无线电设备进行发射 ``` $ python challengectl.py -h usage: challengectl.py [-h] [-v] flagfile devicefile A script to run SDR challenges on multiple SDR devices. positional arguments: flagfile Flags file devicefile Devices file options: -h, --help show this help message and exit -v, --verbose ``` ## Flags 文件 Flags 文件是一个 csv 文件,第一行包含会议名称以及开始和结束时间。在第一行之后,使用如下所示的格式为每个挑战添加一行。 ``` conference,starttime,endtime chal_id,chal_name,flag,module,modopt1,modopt2,minwait,maxwait,freq1,freq2,freq3 ``` flags-archive 目录包含以往 RFCTF 活动的示例 flags 文件。 ## 设备文件 设备文件是一个 csv 文件,每个 SDR 设备占一行。每行以一个从 0 开始的索引开头,后跟 challengectl 要使用的每个设备的设备字符串。 ``` dev_id,osmosdr_device_string 0,"bladerf=longhexserialnumberhere,biastee=1" ``` `create-devices-txt.py` 会尝试检测您系统上支持的设备,并自动输出一个 devices.txt 文件,为检测到的每个设备生成一行。 ### 支持的设备 任何能够使用 GNURadio gr-osmosdr sink 进行发射且支持发射功能的设备*应该*都能工作,但到目前为止仅测试了以下设备。 - [Nuand bladeRF 2.0](https://www.nuand.com/bladerf-2-0-micro/) - [Ettus USRP B200](https://www.ettus.com/all-products/ub200-kit/) - [Great Scott Gadgets HackRF One](https://greatscottgadgets.com/hackrf/one/) # 挑战 **spectrum_paint.py** 使用 [gr-paint](https://github.com/drmpeg/gr-paint) 绘制图像
**ask.py** 发射幅移键控挑战
**cw.py** 发射 CW / 摩斯密码挑战
**nbfm.py** 发射窄带调频信号
**usb_tx.py** 发射上边带信号
**lrs_pager.py** 生成一个 pager.bin 文件,供 lrs_tx.py 发射。此代码基于 [github.com/tony-tiger/lrs](https://github.com/tony-tiger/lrs)
**lrs_tx.py** 基于 lrs_pager.py 生成的 pager.bin 文件发射 LRS 信号
**pocsagtx_osmocom.py** 使用 [gr-mixalot](https://github.com/unsynchronized/gr-mixalot) 发射 POCSAG 消息
标签:逆向工具