逆向工程 反编译
使用apktool,dex2jar,jd-gui对android java应用程序进行反向工程,以将.apk文件转换为.java。
通过对Android应用程序(.apk文件)进行反向工程,我们可以获得以下内容:
- 了解如何构建应用程序中的特定UI
- 阅读AndroidManifest.xml –应用中的权限,活动,意图等
- 该应用程序中使用的本机库和图像
- 混淆的代码(默认情况下,Android SDK使用ProGuard工具,该工具通过删除未使用的代码并使用语义上晦涩的名称重命名类,字段和方法来缩小,优化和混淆代码。
所需工具:
首先下载以下内容。
- 来自http://code.google.com/p/dex2jar/的 Dex2jar
- 来自http://java.decompiler.free.fr/?q=jdgui的 JD-GUI
- 来自http://code.google.com/p/android-apktool/的 ApkTool
使用ApkTool
–提取AndroidManifest.xml以及res文件夹中的所有内容(布局xml文件,图像,用于webview的html等)。
运行以下命令:
>apktool.bat d sampleApp.apk
它还提取所有.class文件的.smali文件,但是很难读取。
##您可以使用7-zip之类的zip实用程序来实现。
使用dex2jar
–要从.apk文件生成.jar文件,我们需要JD-GUI从该.jar中查看源代码。
运行以下命令:
>dex2jar sampleApp.apk
反编译.jar JD-GUI
–会反编译.class文件(对于android应用,则为模糊处理;对于其他.jar文件,则为可读的原始代码)。 即,我们从应用程序中获取了.java。
只需运行
jd-gui.exe and File->Open to view java code from .jar or .class file.
您可能还喜欢 -
- Android:Eclipse中的应用程序项目结构
- 年度计算机项目建议,巨大的清单
- 在Eclipse中安装Android SDK,ADT
- Java:使用递归以树格式子文件夹读取文件夹及其内容
- Android First Program Eclipse开始
参考: Android逆向工程–在GT博客博客中从我们的JCG合作伙伴 Ganesh Tiwari 反编译.apk-.dex-.jar-.java 。
翻译自: https://www.javacodegeeks.com/2012/11/android-reverse-engineering-and-decompilation.html
逆向工程 反编译