By reverse engineering of android app (.apk file) we can get following :
- understand how a particular UI in an App is constructed
- reading AndroidManifest.xml - permissions, activities, intents etc in the App
- native libraries and images used in that App
- obsfucated code ( android SDK, by default, uses ProGuard tool which shrinks, optimizes, and obfuscates your code by removing unused code and renaming classes, fields, and methods with semantically obscure names.
Required Tools :
Download the followings first.
Download the followings first.
- Dex2jar from http://code.google.com/p/dex2jar/
- JD-GUI from http://java.decompiler.free.fr/?q=jdgui
- ApkTool from http://code.google.com/p/android-apktool/
Using ApkTool
- to extract AndroidManifest.xml and everything in res folder(layout xml files, images, htmls used on webview etc..)
Run the following command :
>apktool.bat d sampleApp.apk
##You can achieve this by using zip utility like 7-zip.
Using dex2jar
- to generate .jar file from .apk file, we need JD-GUI to view the source code from this .jar.
Run the following command :
>dex2jar sampleApp.apk
Decompiling .jar JD-GUI
- it decompiles the .class files (obsfucated- in case of android app, but readable original code is obtained in case of other .jar file). i.e., we get .java back from the application.
Just Run the jd-gui.exe and File->Open to view java code from .jar or .class file.
Great....Ganesh
ReplyDeleteThanks for your tutorial
JD Gui not available in your link anymore!
ReplyDeleteCheck another tutorial: How to decompile Android APK file