nrf sniffer problem (rust error)

Hello,

I'm not able to sniff BLE using your tool

I tried to configure nrf sniffer with nrfutil.

OS: MacOS 15.1.1 (arm)

Wireshark: 4.0.17 (it seems the actual version for last version the nrf sniffer for Bluetooth, later versions have different extcap folder, so comman

nrfutil ble-sniffer bootstrap
 doesn't work properly)

nrfutil-ble-sniffer 0.12.0 (97192db 2024-01-24)
commit-hash: 97192dbd758c2790d6f894d98b5ab92f64d32fda
commit-date: 2024-01-24
host: aarch64-apple-darwin
build-timestamp: 2024-01-24T10:25:57.029337Z
classification: nrf-external

nrfutil 7.4.1 (99b5854 2023-02-08)
commit-hash: 99b5854354f13b3c1b25d2a4609c9422f46013c8
commit-date: 2023-02-08
host: aarch64-apple-darwin
build-timestamp: 2023-02-08T15:30:49.074609+00:00
classification: nrf-external

I don't see interface in the Wireshark.

  1. I tried to run Wireshark with log-level debug, but I see nothing related to the nrf sniffer.
  2. I tried to run nrfutil-ble-sniffer-shim manually
    1. ./nrfutil-ble-sniffer-shim --extcap-dlts
      dlt {number=272}{name=NORDIC_BLE}{display=nRF Sniffer for Bluetooth LE}

    2. ./nrfutil-ble-sniffer-shim --extcap-config
      arg {number=0}{call=--only-advertising}{display=Only advertising packets}{tooltip=The sniffer will only capture advertising packets from the selected device}{type=boolflag}{save=true}
      arg {number=1}{call=--only-legacy-advertising}{display=Only legacy advertising packets}{tooltip=The sniffer will only capture legacy advertising packets from the selected device}{type=boolflag}{save=true}
      arg {number=2}{call=--scan-follow-rsp}{display=Find scan response data}{tooltip=The sniffer will follow scan requests and scan responses in scan mode}{type=boolflag}{default=true}{save=true}
      arg {number=3}{call=--scan-follow-aux}{display=Find auxiliary pointer data}{tooltip=The sniffer will follow aux pointers in scan mode}{type=boolflag}{default=true}{save=true}
      arg {number=4}{call=--scan-follow-aux-chain}{display=Find auxiliary pointer data chain}{tooltip=The sniffer will follow aux pointer data chains in scan mode}{type=boolflag}{default=false}{save=true}
      arg {number=5}{call=--scan-follow-aux-rsp}{display=Find auxiliary scan response data}{tooltip=The sniffer will follow aux pointer data chains in scan mode}{type=boolflag}{default=false}{save=true}
      arg {number=6}{call=--coded}{display=Scan and follow devices on LE Coded PHY}{tooltip=Scan for devices and follow advertiser on LE Coded PHY}{type=boolflag}{default=false}{save=true}
      arg {number=7}{call=--verbose}{display=Enable verbose logging}{tooltip=Enable verbose logging. This is useful to have enabled if creating customer help cases to Nordic Semiconductor}{type=boolflag}{default=false}{save=true}

    3. RUST_BACKTRACE=full ./nrfutil-ble-sniffer-shim --extcap-interfaces
      thread 'main' panicked at src/main.rs:1570:68:
      called `Option::unwrap()` on a `None` value
      stack backtrace:
         0:        0x100739508 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h298c9ab285ff3934
         1:        0x1007577d4 - core::fmt::write::h4e276abdb6d0c2a1
         2:        0x10073701c - std::io::Write::write_fmt::hd421848f5f0bf9d0
         3:        0x100739344 - std::sys_common::backtrace::print::hd8bd9ecab1f94b94
         4:        0x10073a850 - std::panicking::default_hook::{{closure}}::h520eeb743fc98fb4
         5:        0x10073a598 - std::panicking::default_hook::ha6550ffe49b63df1
         6:        0x10073ac78 - std::panicking::rust_panic_with_hook::hddb0e884a202de7c
         7:        0x10073ab54 - std::panicking::begin_panic_handler::{{closure}}::hd2798398a2fd9077
         8:        0x100739970 - std::sys_common::backtrace::__rust_end_short_backtrace::h9201cc364dbb8a23
         9:        0x10073a914 - _rust_begin_unwind
        10:        0x10076e7cc - core::panicking::panic_fmt::h4d5168028d4c43c7
        11:        0x10076e840 - core::panicking::panic::h40561ff494e2b577
        12:        0x1004e8ec4 - nrfutil_ble_sniffer::main::hf3f4012832e74141
        13:        0x10050e3f4 - std::sys_common::backtrace::__rust_begin_short_backtrace::h04811ef35343dcb3
        14:        0x100512898 - std::rt::lang_start::{{closure}}::h997e208e4c3d95e7
        15:        0x100730e50 - std::rt::lang_start_internal::h5b246d44f1526226
        16:        0x100512874 - std::rt::lang_start::h02cfa90d4b92fd26
        17:        0x1004f4d8c - _main
      Error: Subprocess /Users/lybrus/.nrfutil/bin/nrfutil-ble-sniffer failed with unexpected exit code Some(101)

 

It seems the problem with nrfutil-ble-sniffer-shim

I also tried to install sniffer version written with python, but I racked my brain to figure out how to make the sniffer use correct version of python on mac (I'm using pyenv). I just make link for python3 and it started work. But about wireshark, due to lack of logs I don't understand what is going wrong.

Help me, please. I just want to understand better how exactly BLE works.


  • Ensure that you're using a compatible version of the nRF Sniffer for Bluetooth. As you've mentioned, the newer versions of Wireshark (like 4.0.x) have a different extcap folder structure, which may break compatibility with the sniffer tool.
    Try using Wireshark 3.x instead of 4.0.x, as it has better compatibility with the current nRF Sniffer tool. This might solve the issue where the interface doesn't show up.White Screen

  • I am having the same issue. I have tried Wireshark 3.7, 4.2, 4.4. On MacOS 15.1 (arm)

    When I open wireshark, I can see it has detected the plugin but no interfaces are shown. When I try to run the shim I get:

    ./nrfutil-ble-sniffer-shim --extcap-interfaces
    thread 'main' panicked at src/main.rs:1810:68:
    called `Option::unwrap()` on a `None` value
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
    Error: Subprocess /Users/sebgos01/.nrfutil/bin/nrfutil-ble-sniffer failed with unexpected exit code Some(101)

    Sadly I cant seem to get RUST_BACKTRACE to work and provide any more debug info. Looks like something has broke on MacOS 15.1

Related