Summary
This chapter talked about some commonly used open source and commercial reverse engineering tools. We also discussed some case studies to understand what type of features and capabilities would be required in a tool to solve the problem. For the majority of tasks done during a penetration test, basic disassembling and debugging are needed, so an open source reverse engineering tool would be enough for such a requirement. However, for more advanced features and capabilities, we would have to go with a commercial reverse engineering tool such as IDA Pro or Hopper. It is also important to feel comfortable with the graphical interface (or visual mode) that each of these tools have. That's another reason why someone prefers one reverse engineering tool over another. For the reverse engineering of mobile applications, the important features/capabilities that the tools must have are the disassembly and assembly of OSx
and dex
files, decompilation, graphing, patching of the binary...