以下是一些可用于从APK文件到源代码执行逆向工程的工具:
首先,我推荐this
视频可能会清除你的所有怀疑
如果没有,请通过它
Procedure for decoding .apk files, step-by-step method:
Step 1:
创建一个新文件夹并将.apk文件放入其中(您要解码)。现在将此.apk
文件的扩展名重命名为.zip
(例如:从filename.apk重命名为filename.zip)并保存。
如果转换成.zip的问题请参考link
获得.zip后,你会得到classes.dex文件等。在这个阶段你可以看到drawable而不是xml和java文件,所以继续。如果您没有看到扩展程序,请检查配置
Step 2:
现在解压缩此apk文件夹在同一个文件夹中。现在从这个link
下载dex2jar
并将其解压缩到同一个文件夹中。现在打开命令提示符并将目录更改为该文件夹。
然后写dex2jar classes.dex
并按回车键。现在你在同一文件夹中获得classes.dex.dex2jar
文件。
然后下载java decompiler
现在双击jd-gui并单击打开的文件。然后从该文件夹中打开classes.dex.dex2jar
文件。现在您获取类文件并保存所有这些类文件(单击文件,然后单击src名称中的“保存所有源”在jd-gui中)。解压缩该zip文件(classes_dex2jar.src.zip)
,您将获得该应用程序的所有java文件。
在这个阶段你得到java源代码,但xml文件仍然不可读,所以继续。
Step 3:
现在打开另一个新文件夹并放入这些文件
windows v1.x
和Apktool
的Apktool使用谷歌安装窗口并放入同一文件夹
apktool if framework-res.apk.
上面的命令应该导致Framework installed ...
。
Step 4:
最后我们得到了res/
以及项目的java代码,这是我们开始的目标。
P.S.
如果您无法通过上述步骤获得res文件夹,请安装新的apktool
- 是否安装了Java 1.7?安装Apktool 2.x
- 是否安装了Java 1.6或更高版本?安装Apktool 1.x
Enjoy and happy coding
没有软件,没有太多的步骤..
只需上传您的APK并从此网站获取所有资源..
https://www.apkdecompilers.com/
该网站将反编译嵌入在APK文件中的代码并提取文件中的所有其他资产。
注意:我反编译我的APK文件并从该网站获得一个迷你代码
更新1:
我发现了另一个在线反编译网站,
http://www.javadecompilers.com/apk/ - 不能继续要求弹出窗口阻止
更新2:
我在Play商店找到了apk反编译器应用,
https://play.google.com/store/apps/details?id=com.njlabs.showjava
我们可以在我们的Android手机中反编译apk文件。我们还可以在此应用程序中查看java和xml文件
更新3:
我们可以使用Android studio 2.2版本中的另一个分析分析APK功能
构建 - >分析APK - >选择你的APK - >它给出结果
有一种新方法可以做到这一点。
Android Studio 2.2有APK分析器它会提供很多关于apk的信息,请在这里结帐: - http://android-developers.blogspot.in/2016/05/android-studio-22-preview-new-ui.html
并不是的。有许多dex反汇编/反编译套件,其中such as smali或dex2jar将生成半人类可读的输出(在dex2jar的情况下,你可以通过使用类似JD-GUI的东西获得java代码,但过程并不完美,它您不可能100%重新创建源代码。但是,它可能会为您提供一个开始重建源代码树的位置。
按照以下步骤执行此操作或仅使用apkToJava gem进行此过程,它甚至负责安装所需的工具以使其工作。
对于Android平台,您可以尝试在Play商店中提供的ShowJava。
您可以通过app界面查询生成的代码,生成的java文件和文件夹结构存储在ShowJava
的/sdcard
文件夹中,以及转换后生成的.jar
文件。
该应用程序是免费的,主视图底部有一个广告横幅,但有一个应用内购买选项(3,99 $)可以将其删除。除了删除广告横幅广告之外,应用内购买不会添加任何功能。
披露:我不是应用程序的开发者,也不是我以任何方式与他联系。
如果您正在寻找专业的替代方案,请查看PNF Software的JEB Decompiler。
有一个演示版本可以让您反编译大多数代码。