0

I am trying to find out specifics of the communication between a DJI Osmo Action camera and the Android vendor app (https://play.google.com/store/apps/details?id=dji.mimo). The camera communicates over WiFi (Bluetooth is disabled on the Android phone) with the app but all packet scanners catch zero packets (for instance this one: https://play.google.com/store/apps/details?id=app.greyshirts.sslcapture). I can capture packets with the same sniffer apps between other devices and apps.

Why are no packets captured for this specific camera and app? Even if the data is encrypted and cannot be decoded using the VPN/certificate trick: is there a way to get the encrypted packets at least?

Regards,

Phantômaxx
  • 37,901
  • 21
  • 84
  • 115
Hyndrix
  • 4,282
  • 7
  • 41
  • 82

3 Answers3

2

The DJI MIMO app communicates with the Osmo Action and Osmo Pocket using UDP packets.

If you have a rooted Android device, you can use any of the packet sniffer or tcpdump tools to sniff the traffic.

Alternatively, you can connect a computer with Wireshark running (and promiscuous mode enabled Wifi card) to the Osmo device using the credentials it provides. The Wifi network shows up as a SSID hidden network so you will have to key in the SSID manually. Then, connect to the Osmo device using your phone with the DJI Mimo app and you should be able to see the traffic in Wireshark.

enter image description here

jawish
  • 566
  • 3
  • 5
1

a packet sniffer does not have to run on the same machine; the same network segment is enough.

just use wireshark to monitor any local WiFi interface, which does support promiscuous mode.

Martin Zeitler
  • 1
  • 19
  • 155
  • 216
  • Do you have any idea why no packets are captured directly on the device? Can the app somehow circumvent the packet sniffer? – Hyndrix May 23 '19 at 04:01
  • @Hyndrix those sniffers for Android might have limited functionality - or the NIC may not fully support promiscuous mode. it is impossible it could circumvent the media - even if a NIC on the same network segment would usually not pick up the packets not destined for it (unless being switched into promiscuous mode)... and as you describe the scenario, those packets would even be destined for the same host. the comments of that Android app suggest it's SSL certificate had expired. – Martin Zeitler May 23 '19 at 04:14
0

You can use Charles Proxy in your android device. I don't know if there is a version for android, I use it in iOS. All traffic between your android and camera will be through the proxy and the application will allow you to see all sent packets in a human readable form. If there is not an app for android, you can install it in your windows machine and configure your android emulator for using it. There are plenty of tutorials on how to configure your emulator to work with Charles Proxy.

sharkan
  • 11
  • 2