Reverse Engineering is the process of analyzing software to understand its source code, programming languages, and how it was created.
How to do reverse engineering of Android app
Reverse engineering of an Android app allows you to understand its inner workings and source code. With the help of open-source tools like JADX, reverse engineering an Android app has never been easier.
How to decompile Android app with JADX
1. Download the jadx tool and unzip
2. Download the apk file of the app that you want to decompile, and paste it into the same folder where you extracted the jadx.
3. install JDK and set the environmental variables if you haven’t already.
4. open CMD with administrator privileges and change the directory to jadx folder using the CD command
Example: cd D:\Softwares\Decompiler\jadx
5. enter the following command: jadx-gui –show-bad-code “enter-apk-filename-here“
Example: jadx-gui --show-bad-code "com.netflix.mediaclient.apk"
6. later the jadx-gui window will appear with the reverse engineering of the android apk done.
7. now you will see the source code of an android app.
Copying source code, or modifying the app without the publisher’s permission is illegal, but you can use it to take inspiration and improve your coding skills.
The above steps were about reverse engineering of android apk, but if you don’t have a PC or your intention was just to peek into the project file, you can do the following, and it can be done on your smartphone as well.
Step 1 – Download the apk file of an android app
Step 2 – Open the apk using zArchive or 7zip.
Step 3 – You will see the project file where you can easily peek inside the apk.
Reverse engineering android games
Android apps are mostly either made of Kotlin or Java, but for Android games, you need to know which game engine is used, and you can do that by navigating to the assets folder inside an apk, most game studios use the OBB file to store graphics, so checkout .obb if you don’t find the assets folder in an apk.
once you know which game engine is used, you can search for its decompiler online. Most of the android games are either made of unreal engine or Unity. Below are some of the best decompilers for Unreal Engine and Unity.
- EU Explorer
- Unity assets explorer
- DevX-Unpacker Magic Tools
Unreal engine decompiler
Does this work on any games ?
I’ve described tools to decompile Unity and Unreal Engine games in this article, and they are very much functional as advertised. But when the game is created using alternative cross-platform development tools, such Flutter or ReactNative, things become tricky.