Sniffle是一个基于使用TI CC1352/CC26x2硬件的蓝牙5和4.x LE嗅探器。
Sniffle具有许多有用的功能,包括:
支持BT5/4.2扩展长度广播和数据包
支持BT5 Channel选择算法#1 和 #2
支持所有BT5 PHY模式(常规1M,2M和编码模式)
支持仅嗅探广播和忽略连接
支持channel map,连接参数和PHY更改操作
支持通过MAC地址和RSSI进行广播过滤
支持BT5扩展广播(非定期)
支持使用单个嗅探器在所有三个主广播信道上从目标MAC捕获广播。这使得连接检测的可靠性比大多数仅嗅探一个广播信道的嗅探器要高出近三倍。
用Python编写的易于扩展的主机端软件
与Ubertooth兼容的PCAP导出
必要条件
TI CC26x2R Launchpad 板:https://www.ti.com/tool/LAUNCHXL-CC26X2R1
或TI CC1352R Launchpad 板:https://www.ti.com/tool/LAUNCHXL-CC1352R1
GNU ARM嵌入式工具链:https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads
TI CC26x2 SDK 3.20.00.68:https://www.ti.com/tool/download/SIMPLELINK-CC13X2-26X2-SDK
TI DSLite 编程软件:请参见下文
Python 3.5+ 并安装了 PySerial
注意:通过少量适当的修改编译Sniffle应该是可以让它运行在CC1352P Launchpad板上的,但具体可行性如何我并未尝试。
安装 GCC
通过各种Linux发行版的软件包管理器提供的arm-none-eabi-gcc,通常都会缺少一些头文件或需要对连接器配置进行一些更改。为了尽量减少麻烦,我建议使用上面链接提供的ARM GCC。你可以下载并提取预构建的可执行文件。
安装 TI SDK
TI SDK是作为一个可执行二进制文件提供的,一旦你接受了许可协议,该二进制文件就会提取一堆源代码。在Linux和Mac上,默认安装目录为~/ti/,我建议在此处使用默认设置,实践证明它工作的非常的好。
提取SDK之后,你将需要编辑一个makefile以匹配你的构建环境。在~/ti/simplelink_cc13x2_26x2_sdk_3_20_00_68(或安装SDK的