Challenge

Modern vehicles are rolling software ecosystems. They are now more reliant on firmware running on microcontrollers instead of pure hardware like in the past. Cars can now contain over 70 electronic control units (ECUs), each of them having their own dedicated firmware. ECUs can be responsible for the engine, driving control, infotainment, navigation, and tracking systems - some of which may be connected to a cellular network. All this code has potential bugs, vulnerabilities, or hidden/unwanted functionality. So the notion of a "Smart Car" is a nice idea, but to some individuals "Smart" just means "Hackable". The automotive industry must have visibility over the software that drives its vehicles (literally), despite its growing complexity. Overlooked flaws can have severe consequences.

Approach

IDA can serve as an entry point into a modern vehicle's logical infrastructure. In many cases the original ECU firmware can be reverse-engineered, for example to determine how sensors are being read or how the engine is controlled. IDA is the best tool for this task since it supports all the major processor families used in ECUs. IDA makes it possible to build a gradual understanding of the firmware behavior even without complete documentation, source code, or debug symbols.