Tuesday, January 22, 2013

Fitbit USB Dongle Sniffing

Sync packets are all well and good, and decoding them continues to be a priority, but I decided to give it another go with the USB filter driver today.

Using busdog, I'm now seeing chatter text in a USB trace!  (Does that mean the link is not encrypted?)

11 In  (USB URB Function: 9) 0.007991 32 48 45 59 20 48 45 59 21 20 20 48 49 47 48 46 49 56 45 20 20 00 00 00 00 00 00 00 00 00 00 00 14 HEY HEY!  HIGHFIVE  ............

I expected that the filter driver would just pick up bluetooth transport (HCI?) bytes, but I also see strings in the log that make me wonder if the dongle uses something like a serial protocol to communicate with the host PC.  That would be weird, though, or at least not like most other bluetooth dongles.

13  In  (USB URB Function: 9)   0.000002    32  20 01 43 61 6e 63 65 6c 44 69 73 63 6f 76 65 72 79 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  .CancelDiscovery...............
. . .
13  In  (USB URB Function: 9)   0.000003    32  20 01 47 41 50 5f 4c 49 4e 4b 5f 45 53 54 41 42 4c 49 53 48 45 44 5f 45 56 45 4e 54 00 00 00 00  .GAP_LINK_ESTABLISHED_EVENT....

Anyway... we'll see.  I don't have protocol docs for Bluetooth LE, but perhaps by subtracting the bytes in the sync log from this output and doing some more reading, I'll be able to deduce something more about the actual device communication.

6 comments:

  1. 1. How are you virtualizing windows 7? KVM, virtual box or something else?

    2. What exactly are you doing to pass thru the device on to the VM?

    I ask because I'm using windows 7 x64 under KVM, and for whatever reason the fitbit connect software complains that it can't find the device. Device manager shows the device as a generic hid device, but still no dice.

    ReplyDelete
    Replies
    1. I'm running Win7 on a Mac using Parallels. I'm not sure what the story on another platform like Linux would be.

      Delete
  2. Pete, I'm thinking about buying a FitBit One this week. I'll only buy it if I can be sure that I'll be able to get my data locally stored (without any commercial subscriptions). So is this possible now or not? Is there a working hack/tool/workaround or whatever that allows me to get hands on my data? It doesn't matter if it sniffs the USB dongle or parses the website. Essential is only that I can get my data.

    ReplyDelete
    Replies
    1. Short answer: No, not that I know of.
      Long answer: There is no tool that I know of yet that can pull the data from the Fitbit One or Zip. However, you can get the data from the sync logs on your computer, but the format of that data is not completely parsed yet.

      Delete
    2. You don't need a "commercial subscription" to use fitbit. You get the website integration/data storage for free with the device.

      Delete
  3. AFAIK you only get the raw data on a "by day"-level, not on a "by minute" level.

    ReplyDelete