Introduction
So far, we have covered the basics of what an IoT ecosystem consists of and identifying threats with their respective risks via threat modeling to assist with our testing. Some vulnerabilities and threats may be simpler to identify purely through reconnaissance of the technology in use. In this chapter, we will focus our efforts purely on reverse engineering firmware to analyze its contents for manipulation during its runtime. We will roll up our sleeves, so to speak, and discuss how to disassemble firmware, how to analyze firmware contents, its architecture, using common firmware tools, and how to modify firmware for malicious purposes. Similar to other software reverse engineering methodologies, analyzing firmware is definitely an art in itself. You will learn that a number of tools will assist us in looking for common flaws; however, analyzing the security of a firmware binary image is very much a manual process.
Before we begin analyzing firmware, it is important to discuss...