Now that we have basic information about how to reverse engineer binaries, it's time we get into a bit of depth on exploitation and understanding the architecture of the platforms on which IoT devices are mostly based. For getting a basic understanding, we will only focus on MIPS now, but it is highly recommended that you use the same concepts and perform exploitation on ARM-based architectures as well.
To perform MIPS exploitation, we would primarily do it using the QEMU and chroot technique which we glossed over earlier in this chapter. We will look into things such as how to perform buffer overflow exploitation on MIPS binaries and subvert the program execution flow to what we want it to be instead of what the binary is supposed to perform. We won't go into concepts such as Return Oriented Programming (ROP) for now and keep things simple.