Chapter 8: Conclusion
Software reverse engineering, in simple terms, is the art of taking apart an application or software to understand its internal workings. The way a piece of software/code functions depends upon several factors such as the programming language, the CPU architecture it is built for, and programming practices. The process of reverse engineering as well as analyzing the reverse engineered software, depends on the type of architecture it was developed for, the type of programming language, and so on.
For mobile application reverse engineering, the initial phase requires an understanding of an application package structure, how it is developed, the programming language, binary format, the application package type, and so on. With this knowledge, we start the process of reverse engineering; in the case of an Android app, we use JADX because we know that Java code can be extracted from dex
files. However, for an iOS app, we disassemble the binary using a disassembler...