Menu

Sunday, December 21, 2014

CD's Blog : Decompile Android apps

Android Reverse Engineering - decompile .apk-.dex-.jar-.java
Email ThisBlogThis!Share to TwitterShare to FacebookShare to Pinterest
Reverse engineering of android java app using apktool, dex2jar, jd-gui to convert .apk file to .java.
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.

    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
It also extracts the .smali file of all .class files, but which is difficult to read.
##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.

No comments:

Post a Comment