One of the most important things during exploitation of embedded devices is to have the ability to exploit vulnerable binaries using techniques such as Return Oriented Programming (ROP), which is what we are going to look at in this section.
The reason why we require this technique is because during exploitation we often need our end result as a shell or execution of a backdoor, which could grant us additional information or access to sensitive resources.
The concept of ROP is the same in both ARM and MIPS (and even x86); however, there are some platform-level differences which we will need to keep in mind. To explain ROP in extremely simple terminology, it involves picking up specific instructions (gadgets) from various locations and chaining them together to build a complete ROP chain which will perform a specific task.