Reverse Engineering Of Embedded Systems Hacking Smartwatches - The TomTom Runner Element
I feel that in info field security too much specialization leads to tunnel vision and a lack of perspective, while specialization is key in most areas. This blog is my attempt to familiarize myself in areas where I'm mostly not comfortable with. This series of posts will focus on a subject that I truly sucked at until months last couple.
TomTom Runner GPS Smartwatch, by. And getting to watch the talk at Defcon this year, I felt truly jealous cause I wanted to be able to do that, I got to work, behind understanding about the Chrysler epic hacking Jeep by Charlie Miller and Chris Valasek. Apart from the hacker tingles you get from hacking devices that exist in the real world there were some different reasons that got me in IoT hacking and motivated me to start reverse engineering such a device, as opposed to hacking an abstract computer script / web application. There's the year obvious buzzword, the Internet of Things. Buzz aside, I feel that we're getting therefore every electronic device is generating record and sharing it to the world. Consequently, I looked around my accommodation for devices I could begin hacking. Now please pay attention. Looked for. The 1st subject I did was to download the firmware for all the devices.
Analyzing the firmware files for that kind of devices was done using binwalk. The results were discouraging. 3 Out devices, the key firmware was encrypted using a 16 byte block cipher in 2 of them. Notice, it appears that a lot of the firmware nowadays is distributed encrypted. As well, tomTom, so the following doodah to do was to look at it from a hacker's perspective. It is jTAG/Debug pins. There will probably be at least some protections and it is a complex learning time with some penalty for error.
I would like to ask you a question. What are our own options from an external perspective? I'm sure you heard about this. Step one of hacking any device is doing our best to get to its program. TomTom application updates the watch's Firmware.
Using Wireshark and forcing an update one can figure out the firmware place files. Hence, for the observant. Make sure you leave suggestions about it in the comment box. HTTP page, no SSL. This later.
There were various different files. gps hacking and BLE modules. This is the case. The following last 2 are unencrypted but were not really interesting. Needless to say, the larger file is 0x000000F0 and looks like the basic firmware. Commonly, looking at it with binwalk gave us this.
Just think for a second. Want further proof that this is encrypted? While using vbindiff, take a look at this comparison of 2 exclusive firmware versions. Basically, this means it is extremely possibly that this is some sort of block cipher in ECB Mode. Fairly general 16 byte block cipher, by far as well as is AES.
Lets get a step back for now regarding firmware analysis. Keep reading! we shall look at what we can practice about the device's hardware. What how is it possible to practice about the watch hardware whilst not opening it? Anyways, here goes, this is possibly pretty old news to veteran reverse engineers. RF emitting device sold in the United States is tested by the FCC, that ultimately publishes its report containing all sorts of juicy facts and photos.
This data will be useful later on. Even though, we must move on, since now we have got a nice enough picture of the device's innards. There's usually a good piece of open source program that does most things the official TomTom Windows application does. Notice that you can check it out here.
When you compile it with. Of course, turns out that loads of the USB communication with the watch is study / write commands to its internal EEPROM. For example, uSBPcap on Windows to record the communication betwixt the device and the TomTom MySports Connect application.
With all that said. Those investigations led me to consider plenty of interesting and undocumented USB commands for the device. With any command composed by at least the subsequent 4 bytes, the USB communication is not too complicated. Essentially, some commands have arguments, such as file contents, and other Since any command is a single byte, it was simple to cycle thru all feasible commands.garmin gps hacks, spy gps for car - visit this web page in the event you want more read. Ultimately, the full list is attainable here. There were some interesting commands, such as a hidden test menu, a command that took device screenshots and saved them on the EEPROM, etcetera we've got the test menu testing the accelerometer sensor.
As a outcome, dozens of the commands to/from the watch involve study / writing to the 4MB EEPROM we saw earlier. You see, we can explore, list and write files. Turns out that in the event you write the firmware file you saw earlier from download. While assuming it's a valid firmware file, USB it will reboot and reflash the file. Nevertheless, this is turning up to be a long post so I won't keep you longer for now. Next post will be about finding that memory corruption bug and controlling execution. This is turning up to be a long post so I won't keep you longer for in the latter days. Next post will be about finding that memory corruption bug and controlling execution.