安云网 - AnYun.ORG | 专注于网络信息收集、网络数据分享、网络安全研究、网络各种猎奇八卦。
当前位置: 安云网 > 技术关注 > 无线安全 > BTLE/BT4.0低功耗蓝牙无线发包器(可模拟iBeacon)

BTLE/BT4.0低功耗蓝牙无线发包器(可模拟iBeacon)

时间:2014-08-23来源: 作者:spaceshuttle点击:
一个基于HACKRF板子的BTLE/BT4.0无线发包器,所有链路层包格式都支持(详见Chapter 23, PartB, Volume 6,Core_V4.0.pdf 标准可自行搜索下载)。可用来发射你想要的任意BTLE包(支持RAW格式,即直…


一个基于HACKRF板子的BTLE/BT4.0无线发包器,所有链路层包格式都支持(详见 Chapter 2&3, PartB, Volume 6, Core_V4.0.pdf 标准可自行搜索下载)。可用来发射你想要的任意BTLE包(支持RAW格式,即直接裸GFSK调制),比如iBeacon包,TI网站上(http://processors.wiki.ti.com/index.php/BLE_sniffer_guide)给的建链过程包等。配合Packet Sniffer,你想干什么都可以。 //安云网咨询系统

源代码:https://github.com/JiaoXianjun/(BTLE项目)

//copyright AnYun.ORG

视频演示: http://v.youku.com/v_show/id_XNzUxMDIzNzAw.html //安云网咨询系统

build方法: //ANYUN.ORG

cd host
mkdir build
cd build
cmake ../
make
sudo make install (or not install, just use btle_tx in hackrf-tools/src) 

//内容来自AnYun.ORG

使用方法1:  //安云网咨询系统

 btle_tx    packet1    packet2    ...    packetX    ...    rN //本文来自安云网 

使用方法2: 

//内容来自AnYun.ORG

 btle_tx    packets.txt 

//安云网,anyun.org

方法二只是把方法1的参数放到一个文本文件当中,每个参数一行,以#开头的表示注释行。参见hackrf-tools/src里的例子packets.txt。

//内容来自安云网

“packetX”是描述包的字符串。所有包组成一个包序列。  //ANYUN.ORG

“rN”表示该序列重复发送N次。如果不写rN,则默认发送一次。  //内容来自AnYun.ORG

包描述字符串格式 (“packetX”):

//安云网咨询系统

 channel_number-packet_type-field-value-field-value-...-Space-value 

//ANYUN.ORG

每个字符串以信道号开头(0~39信道),接下来是包格式关键字(RAW/iBeacon/ADV_IND/ADV_DIRECT_IND/etc,参见最后的例子) ,接下来是字段“名-值”对,最后一个字段“名-值”是Space-xxx,表示本包后等待xxx毫秒,再发送下一个包。因此可以构成任意发包序列/方案。各字段之间以“-”连接。 //安云网咨询系统

iBeacon包例子(iBeacon原理:http://www.warski.org/blog/2014/01/how-ibeacons-work/ )  //ANYUN.ORG

 ./btle_tx     37-iBeacon-AdvA-010203040506-UUID-B9407F30F5F8466EAFF925556B57FE6D-Major-0008-Minor-0009-TxPower-C5-Space-100    r100 //内容来自安云网 

以上命令以100ms间隔重复发送iBeacon包,可以在iPhone或者iPad下载“Locate”软件来看发出的iBeacon信息。包描述字符串解释: 

//内容来自AnYun.ORG

 37-iBeacon-AdvA-010203040506-UUID-B9407F30F5F8466EAFF925556B57FE6D-Major-0008-Minor-0009-TxPower-C5-Space-100
 37 -- 信道号(BTLE广播信道号为37 38 39)
iBeacon -- 包格式关键字. (实际上是标准中的 ADV_IND 格式,见 Core_V4.0.pdf)
AdvA -- 广播地址 (即自己的MAC地址) 这里设置为 010203040506 (可用packet sniffer验证)
UUID -- 设置为 Estimote公司 固定 UUID: B9407F30F5F8466EAFF925556B57FE6D
Major -- major number of iBeacon format. (这里设置为 0008)
Minor -- minor number of iBeacon format. (这里设置为 0009)
Txpower -- 发射功率 (这里设置为 C5)
Space -- 这里设置为包间隔100ms //copyright AnYun.ORG 

TI网站上连接建立的例子: http://processors.wiki.ti.com/index.php/BLE_sniffer_guide  //内容来自安云网

 ./btle_tx     37-ADV_IND-TxAdd-0-RxAdd-0-AdvA-90D7EBB19299-AdvData-0201050702031802180418-Space-1000     37-CONNECT_REQ-TxAdd-0-RxAdd-0-InitA-001830EA965F-AdvA-90D7EBB19299-AA-60850A1B-CRCInit-A77B22-WinSize-02-WinOffset-000F-Interval-0050-Latency-0000-Timeout-07D0-ChM-1FFFFFFFFF-Hop-9-SCA-5-Space-1000     9-LL_DATA-AA-60850A1B-LLID-1-NESN-0-SN-0-MD-0-DATA-X-CRCInit-A77B22-Space-1000 //ANYUN.ORG 

 以上命令模拟设备1和设备2建立连接,并可被packet sniffer捕捉到(packet sniffer设置为37号广播信道,最后会根据建链过程携带的配置信息自动跳到9号数据信道接收到数据包)

//内容来自安云网

第一包:设备1在37号信道发送广播包 ADV_IND,携带自己MAC 地址 。

//内容来自安云网

第二包:设备2在扫描状态收到设备1的广播包后,发送建链请求包 CONNECT_REQ,携带一些建链信息,例如:自身MAC地址(InitA),建链目标MAC地址(AdvA),接入地址(AA,供对方将来使用),CRC初始化值(供对方将来使用),跳频信道map和方案(ChM和Hop字段)供对方选择数据信道,等。 //内容来自AnYun.ORG

第三包:设备1根据设备2的建链请求携带的信息,在数据信道9上发送一个链路层空数据包,表示建链完成。DATA字段后的单个“X”表示无数据。

//copyright AnYun.ORG

三包时间间隔1s(1000ms)。  //copyright AnYun.ORG

支持的所有包格式描述字符串举例: 

//安云网咨询系统

RAW packets: (All bits will be sent to GFSK modulator directly) //本文来自安云网

 13-RAW-AAD6BE898E5F134B5D86F2999CC3D7DF5EDF15DEE39AA2E5D0728EB68B0E449B07C547B80EAA8DD257A0E5EACB0B //安云网咨询系统 

ADVERTISING CHANNEL packets: //内容来自安云网

37-IBEACON-AdvA-010203040506-UUID-B9407F30F5F8466EAFF925556B57FE6D-Major-0008-Minor-0009-TxPower-C5
37-ADV_IND-TxAdd-1-RxAdd-0-AdvA-010203040506-AdvData-00112233445566778899AABBCCDDEEFF
37-ADV_DIRECT_IND-TxAdd-1-RxAdd-0-AdvA-010203040506-InitA-0708090A0B0C
37-ADV_NONCONN_IND-TxAdd-1-RxAdd-0-AdvA-010203040506-AdvData-00112233445566778899AABBCCDDEEFF
37-ADV_SCAN_IND-TxAdd-1-RxAdd-0-AdvA-010203040506-AdvData-00112233445566778899AABBCCDDEEFF
37-SCAN_REQ-TxAdd-1-RxAdd-0-ScanA-010203040506-AdvA-0708090A0B0C
37-SCAN_RSP-TxAdd-1-RxAdd-0-AdvA-010203040506-ScanRspData-00112233445566778899AABBCCDDEEFF
37-CONNECT_REQ-TxAdd-1-RxAdd-0-InitA-010203040506-AdvA-0708090A0B0C-AA-01020304-CRCInit-050607-WinSize-08-WinOffset-090A-Interval-0B0C-Latency-0D0E-Timeout-0F00-ChM-0102030405-Hop-3-SCA-4 //安云网咨询系统 

DATA CHANNEL packets: //安云网咨询系统

 9-LL_DATA-AA-60850A1B-LLID-1-NESN-0-SN-0-MD-0-DATA-X-CRCInit-A77B22
9-LL_CONNECTION_UPDATE_REQ-AA-60850A1B-LLID-1-NESN-0-SN-0-MD-0-WinSize-02-WinOffset-000F-Interval-0050-Latency-0000-Timeout-07D0-Instant-0000-CRCInit-A77B22
9-LL_CHANNEL_MAP_REQ-AA-60850A1B-LLID-1-NESN-0-SN-0-MD-0-ChM-1FFFFFFFFF-Instant-0001-CRCInit-A77B22
9-LL_TERMINATE_IND-AA-60850A1B-LLID-1-NESN-0-SN-0-MD-0-ErrorCode-00-CRCInit-A77B22
9-LL_ENC_REQ-AA-60850A1B-LLID-1-NESN-0-SN-0-MD-0-Rand-0102030405060708-EDIV-090A-SKDm-0102030405060708-IVm-090A0B0C-CRCInit-A77B22
9-LL_ENC_RSP-AA-60850A1B-LLID-1-NESN-0-SN-0-MD-0-SKDs-0102030405060708-IVs-01020304-CRCInit-A77B22
9-LL_START_ENC_REQ-AA-60850A1B-LLID-1-NESN-0-SN-0-MD-0-CRCInit-A77B22
9-LL_START_ENC_RSP-AA-60850A1B-LLID-1-NESN-0-SN-0-MD-0-CRCInit-A77B22
9-LL_UNKNOWN_RSP-AA-60850A1B-LLID-1-NESN-0-SN-0-MD-0-UnknownType-01-CRCInit-A77B22
9-LL_FEATURE_REQ-AA-60850A1B-LLID-1-NESN-0-SN-0-MD-0-FeatureSet-0102030405060708-CRCInit-A77B22
9-LL_FEATURE_RSP-AA-60850A1B-LLID-1-NESN-0-SN-0-MD-0-FeatureSet-0102030405060708-CRCInit-A77B22
9-LL_PAUSE_ENC_REQ-AA-60850A1B-LLID-1-NESN-0-SN-0-MD-0-CRCInit-A77B22
9-LL_PAUSE_ENC_RSP-AA-60850A1B-LLID-1-NESN-0-SN-0-MD-0-CRCInit-A77B22
9-LL_VERSION_IND-AA-60850A1B-LLID-1-NESN-0-SN-0-MD-0-VersNr-01-CompId-0203-SubVersNr-0405-CRCInit-A77B22
9-LL_REJECT_IND-AA-60850A1B-LLID-1-NESN-0-SN-0-MD-0-ErrorCode-00-CRCInit-A77B22 
//内容来自安云网


//安云网,anyun.org

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
验证码: 点击我更换图片
相关内容
推荐内容