QEMU extensions and mods
To many average users, dealing with C code is often very hard, time-consuming, and ultimately, not productive. Nonetheless, the emergence of executing some custom firmware and understanding its structure while running (that is, dynamic analysis) arose when the IoT era began. Indeed, it has become very difficult to debug code running into an embedded device such as a router or a baseband chip inside a mobile phone. Luckily, researchers, both in industry and academia, have developed very powerful frameworks to help experts use QEMU as an abstraction layer, without dealing much with its internals, and to analyze what is running through the firmware code by use of a Python interface. This process of decoupling and abstraction is extremely difficult and of course, some knowledge is always required and welcome. Some examples are Avatar and Avatar2, TriForceAFL, and PANDA.
A brief example of Avatar2
It was in 2014 when Jonas Zaddach presented the first version...