Decompiling Android applications
With a target IoT app and APK file downloaded, the application can now be decompiled to view its contents. For Android apps, this task can be completed in a matter of minutes. Later, automation testing techniques for statically analyzing an app will be covered in more detail. Decompiling an application is one of the first steps in reverse engineering an application to manipulate its functions. Apps can also be recompiled and packaged after modification, however this is out of scope for our purposes.
Getting ready
To decompile an Android app, we will make use of Enjarify and JD-GUI. Enjarify translates Dalvik bytecode to Java bytecode which will be used to analyze it further with JD-GUI. JD-GUI is a Java decompiler used to view Java code. Both tools are included in the accompanied virtual machine:
- Enjarify can be downloaded via the GitHub repository at: https://github.com/google/enjarify.
Note
Enjarify does require Python 3 as a dependency.
- JD-GUI is available via...