Embedded systems are ubiquitous in our society and like any other software, firmware is susceptible to bugs and vulnerabilities. Dynamic analysis techniques such as fuzzing and symbolic execution have proved effective in detecting bugs. However, applying these techniques to embedded systems is not straightforward due to limited resources and visibility, which highlights the need for improved tooling.
Avatar² is an open source framework for dynamic instrumentation and analysis of binary firmware. It aims to facilitates the integration and interoperability between various binary analysis tools such as debuggers, emulators, disassemblers, symbolic execution engines and fuzzers. The framework is particularly aimed at analyzing embedded systems and their firmware, as it allows for the combination of physical devices with emulators in a hardware-in-the-loop fashion. Additionally, Avatar² provides fine-grained control over the program execution. It allows doing live migration of a program between analysis tools and forwarding special accesses, such as memory and I/O, to others analysis tools for hybrid execution.