Leveraging UART, SPI and JTAG for firmware extraction
2019-05-16, 10:30–12:30, Workshop 2

This workshop aims to teach methods to obtain a firmware running on a IOT device by probing the circuit board. Accessing flash memory using common protocols such as UART, SPI and JTAG will be covered


The classic firmware update procedure was to download the latest version from the manufacturer then upload it to your device which allowed easy access for inspection. In today's IOT devices, firmware may update itself directly using HTTPS. This allows for timely security updates but removes the end user access to the binary.

Fortunately, there are ways to extract a firmware from the flash chip on a circuit board using common protocols. In this workshop, we will learn:

  • how to disassemble a device
  • locate UART, SPI and JTAG ports
  • use a programmer to connect to them
  • how to read and write NOR and NAND flash memory