Android 为什么在BLE PCAP中使用pyshark会给我带来不合适的结果

Android 为什么在BLE PCAP中使用pyshark会给我带来不合适的结果,android,bluetooth,bluetooth-lowenergy,packet-sniffers,sniffer,Android,Bluetooth,Bluetooth Lowenergy,Packet Sniffers,Sniffer,我在pyshark/scapy方面的经验有限,例如从嗅探设备捕获蓝牙低能量。我没有找到解决办法。欢迎就如何实现这一目标提出任何想法或建议。提前谢谢 设置: 我有两个嗅探设备,分别是Ubertooth one和nrf51 DK。带有BLE 4.1和Android智能手机的智能手表。这个平台是ubuntu 14.04 目标: 我的目标是在应用程序(例如:相册或浏览器)运行期间捕获smartwatch和手机之间的通信。我所需要的只是数据包长度、源地址和目标地址 当前状态: 最初,我从nrf51 DK开

我在pyshark/scapy方面的经验有限,例如从嗅探设备捕获蓝牙低能量。我没有找到解决办法。欢迎就如何实现这一目标提出任何想法或建议。提前谢谢

设置:

我有两个嗅探设备,分别是Ubertooth one和nrf51 DK。带有BLE 4.1和Android智能手机的智能手表。这个平台是ubuntu 14.04

目标:

我的目标是在应用程序(例如:相册或浏览器)运行期间捕获smartwatch和手机之间的通信。我所需要的只是数据包长度、源地址和目标地址

当前状态:

最初,我从nrf51 DK开始。它没有从配对过程中捕获,所以我买了Ubertooth设备,它显示了配对过程,但没有显示两个设备之间通信的任何其他有用组件。但是,有一种叫做“未知”的东西,如下图所示

问题:

1.是否可以捕获smartwatch和智能手机之间至少90%的传输

  • Wireshark没有显示任何地址(源和目标)。我还能用pyshark/scapy破解“未知”吗
  • 注:

    对于问题1,我环顾四周,发现以下内容:

    “此功能会导致广告数据包中的MAC地址被替换为随机值,该值按制造商确定的时间间隔变化。任何恶意设备”,沿您的旅行路线每隔一段时间放置,将无法确定从您的设备接收到的一系列不同的随机生成的MAC地址实际上与同一物理设备有关。它实际上看起来像一系列不同的设备,因此,无法使用公布的MAC地址跟踪您”

    所以我不确定Ubertooth one或其他嗅探设备是否能够捕获90%的传输。

    对于问题2,我保存了PCAP文件,并尝试使用pyshark和scapy以python显示源地址和目标地址,但它不包含地址:

    cap = pyshark.FileCapture('Test_1.pcap')
    print(cap[2].ip.src)
    
    输出:

    pyshark.tshark.tshar.TsharkNotFoundException:未找到tshark。尝试将其位置添加到配置文件中

    我猜Wireshark的版本低于pyshark的要求。(当前版本:1.12.1)。但是,我的嗅探设备必须使用旧版本的Wireshark。因此,我不确定是旧版本的Wireshark导致了问题,还是我使用pyshark的方式是错误的

    问题2更新:

    apt install tshark
    

    我想知道这样做是否是一种好的做法,如果不是,那么实现这一点的最佳方法是什么?

    只要嗅探器捕捉到CONNECT\u IND数据包(以前称为CONNECT\u REQ),它就能够跟踪整个连接。当然,如果信号不够好,一些数据包可能会丢失。如果发生通道映射或连接参数更新,嗅探器获取此数据包至关重要(否则它将与连接失去同步)

    并非每个数据包都发送蓝牙设备地址。它仅在CONNECT\u IND数据包(和广告数据包)中发送


    Wireshark的问题可能是因为您使用了错误的插件/解码格式对其进行解码。请参阅您的嗅探器的文档。

    @tripleee我去发球失误,他们又让我偏离主题,把我送回堆栈溢出。