Fuzzing Android libraries with Sloth
Android libraries that we find in our devices are compiled in the majority of the cases for ARM architectures, making it impossible to run them on a computer with an Intel architecture. Here is where our well-known tool QEMU comes in handy, but since we want to fuzz one library and not to a main binary, we will have to apply changes to QEMU’s code. In this section, we will see the project Sloth, a project for fuzzing Android’s native libraries. We will first take a look at the internals of the project, and finally, we will see how to run it in the example provided with Sloth’s source code.
Introducing Sloth's mechanisms
Sloth is a project aimed at fuzzing Android native libraries. The author of the project, as highlighted on his blog (https://fuzzing.science/blog/Fuzzing-Android-Native-libraries-with-libFuzzer-Qemu), focused the changes applied to QEMU on the code responsible for generating the qemu-user
binaries...