Search code examples
bluetooth-lowenergybluezsniffer

How to capture/dump Bluetooth LE Link Layer packets in linux without sniffer?


I want to capture/dump BLE air interface Link Layer packets in linux stably.

The BLE air interface Link Layer packets seem like follows:

sniffered using ubertooth when connecting another BLE device

However, sniffering through ubertooth is much less reliable(often lose packets).

So, I want to dump BLE traffic data using tools like tcpdump and btmon. I got results like this:

result of tcpdump when connecting another BLE device

However, there is no information about LL_ENC_REQ and LL_ENC_RSP, which contains SKD and IV.

Is it possible to capture SKD and IV without sniffer like ubertooth?

Thanks for advice.


Solution

  • No, btmon only captures HCI packets, which are the packets sent between the computer (host) and the Bluetooth chip (controller). The Link Layer is the communication between two Bluetooth controllers (over the air). To sniff SKD etc. you need an air sniffer.