Microcontroller Exploits is a deep dive into advanced hardware hacking with detailed examples of real-world techniques and a comprehensive survey of vulnerabilities.
In this advanced guide to hardware hacking, you'll learn how to read the software out of single chip computers, especially when they are configured not to allow the firmware to be extracted.
This book documents a very wide variety of microchip hacking techniques; it's not a beginner's first introduction.
You'll start off by exploring detailed techniques for hacking real-world chips, such as how the STM32F0 allows for one word to be dumped after every reset. You'll see how the STM32F1’s exception handling can slowly leak the firmware out over an hour, and how the Texas Instruments MSP430 firmware can be extracted by a camera flash.
For each exploit, you'll learn how to reproduce the results, dumping a chip in your own lab.
In the second half of the book you'll find an encyclopedic survey of vulnerabilities, indexed and cross referenced for use in practicing hardware security.
The book is a bit all over the place, but does a good job summarizing the main methods and then having the different exploits in appendices (which are a lot of fun to read).
For me, a bit more explanations might have helped, but for anyone who has dabbled in hardware this is probably a magical book.
NB: I might be a little biased, I am the technical editor and a good friend of Travis. :-D This book is a first-of-its-kind describing vulnerabilities and exploits in microcontrollers - the small microprocessors that are in all of our everyday electronics. Many of these devices have programs written into their silicon circuitry, often times hidden from the user. This book presents a round up of many different vulnerabilities and exploits that are found in this chips, and gives you the code to implement them yourself (if you so choose). It also provides an overview of many techniques that hardware reverse engineers use to extract memories from chips, things like using chemicals to depackage them, and mechanisms for glitching, tweaking their power signals so important lockdown steps are skipped. Bear in mind if you have no background in computer science or computer architecture you might want to study a bit there before diving in here.
The first half of the book is nicely structured, alternating between a chapter that introduces a technique followed by several real examples that put it to use. The later half of exploits grouped by technique are interesting — at times details are a bit sparse, but references to the source are useful for diving deeper if desired. In particular the survey of 20 different examples of fault injection was good for getting a real sense of how it can be applied effectively, and helping dispel some of the mystique on when to use it.
The book assumes a computer science background; I think a basic knowledge of computer architecture and embedded systems is helpful for following it.