您的位置:首页 > 其它

NRF51822制作蓝牙抓包器

2017-12-10 15:16 281 查看
     前几天由于需要向别人讲解BLE相关知识,为了更加直观展示,想抓段数据来讲解报文部分。苦于手头没有 USB dongle,现寄过来一个时间也来不及了,于是突然冒出个想法,能不能自己做一个。

    从NORDIC官网上下载了ble-sniffer_win_1.0.1,解压之后发现东西还是挺全的,除了软件之外,还有PDF和Firmware,在Firmware文件夹下面有个名字为ble-sniffer_nRF51822_1.0.1_1111_Sniffer.hex的固件,由此看来自己动手做还是大有希望的。打开ble-sniffer的User
Guide粗略读了一下,里面说了一下所需要的软硬件和操作方法,使用方法的大致流程就是先烧写固件到NRF51822,然后sniffer通过串口使用抓数据,最后用wireshark分析。还算简单,下面开始动手。

   
首先,找了一块以前网上买的一个NRF51822模块,用nRFgoStudio先将固件烧进去,先Erase all,然后在Program Application那选择ble-sniffer_win_1.0.1\Sniffer\Firmware目录下的ble-sniffer_nRF51822_1.0.1_1111_Sniffer.hex,选择Program将它烧写进去。



    下一步就是将模块用USB转串口连接到电脑了,注意,这个软件的串口通信需要使用硬件流控,所以USB转串口还需要连接CTS和RTS。翻出来一个USB转串口,发现只有VDD,GND,RX和TX,没有CTS和RTS线,怎么办,那就直接拆开自己引出来这两根线。拆开USB转TTL,看一下芯片是CH340,就长下面这样。



     网上搜索一下CH340G的PDF,手册说CH340G的第9脚是CTS,14脚是RTS。




既然找到了对应管脚,那就点上电烙铁开始焊接。焊完就是这幅德行








看一下PCA10028.h中NRF51822对串口引脚是如何定义的,RX是11,TX是9,CTS是10,RTS是8。



下面开始连线。

NRF51822                              USB-to-UART

TX <------------------------------------>RX     

RX <------------------------------------>TX     
RX <------------------------------------>TX     

CTS <------------------------------------>RTS     

RTS <------------------------------------>CTS     







     
    现在连接电脑,打开ble-sniffer,sniffer已经找到了硬件,并且开始扫描到周围的其他蓝牙设备了








选择相应的设备然后按W启动wireshark,之
4000
后就可以很友好的观察数据了。



     至此,抓包器制作完成。另外如果启动wireshark后发现收到数据,但是却未显示,打开【分析】->【专家信息】里面显示user encapsulation not handled:DLT=157.....一类的信息,这时候就要打开【编辑】->【首选项】,在protocol下面找到DLT-USER,然后右侧选择【编辑】添加一个,DLT选择DLT=157, payload
protocol处填写nordic_ble,之后就可以了。



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  蓝牙 BLE NRF51822 抓包