- A TOOL FOR REVERSE ENGINEERING ANDROID APK FILES FOR PC HOW TO
- A TOOL FOR REVERSE ENGINEERING ANDROID APK FILES FOR PC INSTALL
- A TOOL FOR REVERSE ENGINEERING ANDROID APK FILES FOR PC DOWNLOAD
A TOOL FOR REVERSE ENGINEERING ANDROID APK FILES FOR PC INSTALL
I had to install JDK to get it to work so make sure you have it installed. bashrc for ease of use: alias apktool='java -jar ~/Dev/apktool_2.4.1.jar' Put this file wherever you want (in my case ~/Dev) and add an alias to it in your.
A TOOL FOR REVERSE ENGINEERING ANDROID APK FILES FOR PC DOWNLOAD
You can easily download the apktool from this link.Īt the time of writing, the most recent version was apktool_2.4.1.jar.
A TOOL FOR REVERSE ENGINEERING ANDROID APK FILES FOR PC HOW TO
Now we need to figure out how to unpack the APK into a folder with all the resources and Dalvik bytecode files. Let’s suppose our APK is called application.apk. Search on Google and you should be able to find a way to download APKs pretty easily. You can either use ADB to get an APK from an Android device (emulated or real) or you can use an online APK website to download a working version of the app. The very first step is to get your hands on the APK file. Do not do anything illegal with this knowledge. There will be places throughout the article where I will censor the name of the application or the package I am reversing. The same knowledge is used to reverse malware apps and to disable certificate pinning in APKs. This is merely an exercise to teach you how something like this works. Downloading and unpacking the APKĭisclaimer: I do not condone piracy. You will also have to install the mitmproxy certificate on the device to decrypt the SSL traffic. To fix this, make sure you run mitmproxy with the block_global flag set to false: mitmproxy -set block_global=false. Note: While trying to proxy the android emulator requests via mitmproxy, you might see the error: Client connection killed by block_global. Sig was some sort of hash but I wasn’t sure what kind or how it was being generated and now this required a little bit of reverse engineering. The endpoint returned an invalid signature error even on the slightest change in input: I tried modifying the input slightly just to check if the API was even checking the sig parameter. Everything else seemed generic enough but sig was dynamic and changed with a change in input. Surely I can figure out what those query parameters are? As it turns out it was extremely hard to figure out how the sig parameter was being generated. No need for learning how to reverse-engineer the app. Whenever I made a query, this API call was made: Then I launched mitmproxy and started intercepting the traffic from the emulator. I currently have an iPhone so I installed the Android Emulator on my Linux machine and install the app on that. Maybe just a simple MITM attack would be enough to snoop the API calls and craft my own? I decided to have a fresh start at the problem and figure out if I even need to go as far as decompiling the APK. It only took 3 years, a whole lot of learning, and a renewed interest in reverse-engineering for me to come back to this project. I eventually decided to put the project on the back burner and come back to it once I had more time and experience. I tried reverse-engineering the app but couldn’t get far. Simple, innocent questions that led me into a rabbit hole.
I had always wanted to learn how to reverse engineer Android apps. Let's Reverse Engineer an Android App! June 22, 2020