What this book covers
Chapter 1, Who This Book is For, enumerates prerequisites for understanding the content of this book and introduces the tools used in the rest of the chapters.
Chapter 2, History of Emulation, explains a number of key concepts such as emulation, virtualization, and containerization, and introduces the role of emulation in cybersecurity.
Chapter 3, QEMU from the Ground, presents QEMU as the system emulator of choice for this book, including previous success stories, but also giving a brief introduction to some of its internals.
Chapter 4, QEMU Execution Modes and Fuzzing, details both QEMU user mode and full-system emulation mode, while also introducing static and dynamic fuzzing.
Chapter 5, A Famous Refrain – AFL+QEMU = CVEs, demonstrates the use of QEMU in conjunction with AFL to search for a vulnerability that was reported in 2011 in VLC, a well-known media player.
Chapter 6, Modifying QEMU for Basic Instrumentation, illustrates how Avatar2 can be used as an interface to extend QEMU, for example, to emulate new peripherals such as a UART serial interface.
Chapter 7, Real-Life Case Study – Samsung Exynos Baseband, dives into the CVE-2020-25279, a vulnerability found in modern Samsung phones such as the Galaxy S10.
Chapter 8, Case Study – OpenWrt Full-System Fuzzing, contains a study of the TriforceAFL project, the compilation of the OpenWRT system, and the fuzzing of system calls through TriforceAFL’s driver.
Chapter 9, Case Study – OpenWrt System Fuzzing for ARM, describes the use of a previously seen project (TriforceAFL) for fuzzing OpenWRT built for the ARM architecture, focusing also on the changes required to make it work in this particular architecture.
Chapter 10, Finally Here – iOS Full-System Fuzzing, focuses on the use of QEMU and a modified version of TriforceAFL for emulating and fuzzing on iOS. The chapter also provides an overview of the changes required to both the emulator and the fuzzer.
Chapter 11, Deus Ex Machina – Fuzzing Android Libraries, elaborates on the use of the open source project sloth for fuzzing libraries targeting the Android system, understanding the changes proposed by this project to the QEMU emulator.
Chapter 12, Conclusion and Final Remarks, summarizes the research findings, their implications, and future directions while emphasizing the importance of the research problem and offering closing thoughts on the significance of the study’s contributions.