如何将Android DEX(虚拟机字节码)文件反编译成相应的Java源代码?
当前回答
我用过
Dex2jar + jd-gui javadecompilers.com enjarify Apktool
但没有比谷歌自己的工具更好的了
1)Android Studio 2.x: 构建>分析apk
2)Android Studio 3.0: 配置文件或调试APK
其他回答
很容易
获取这些工具:
Dex2jar将dex文件转换为jar文件 以查看jar中的Java文件
源代码可读性很强,因为dex2jar做了一些优化。
过程:
下面是如何反编译的过程:
步骤1:
将test_apk-debug.apk中的classes.dex转换为test_apk-debug_dex2jar.jar
d2j-dex2jar.sh -f -o output_jar.jar apk_to_decompile.apk
d2j-dex2jar.sh -f -o output_jar.jar dex_to_decompile.dex
注1:在Windows机器中,所有的.sh脚本都被.bat脚本取代
注2:在linux/mac上不要忘记sh或bash。完整的命令应该是:
sh d2j-dex2jar.sh -f -o output_jar.jar apk_to_decompile.apk
注意3:另外,请记住向dex2jar-X添加执行权限。例如sudo chmod -R + X dex2jar-2.0
dex2jar文档
步骤2:
在JD-GUI中打开罐子
Android逆向工程是可能的 . 按照以下步骤从apk文件中获取.java文件。
步骤1。使用dex2jar
从。apk文件生成。jar文件 命令:dex2jar sampleApp.apk
步骤2。使用JD-GUI反编译.jar
它会反编译。class文件,也就是说,我们会从apk中得到模糊的。java文件。
我用过
Dex2jar + jd-gui javadecompilers.com enjarify Apktool
但没有比谷歌自己的工具更好的了
1)Android Studio 2.x: 构建>分析apk
2)Android Studio 3.0: 配置文件或调试APK
如果您不打算下载dex2jar,那么只需使用apk_grabber python脚本将任何apk反编译到jar文件中。然后使用jd-gui读取它们。
这可以通过以下五个步骤来完成:
这个gem自动为您完成这些工作,甚至安装所需的工具
将apk文件转换为zip 解压缩文件 从中提取classes.dex 使用dex to jar将classes.dex转换为jar文件 使用jadx GUI打开jar文件作为Java源代码
推荐文章
- 警告:API ' variable . getjavacompile()'已过时,已被' variable . getjavacompileprovider()'取代
- 安装APK时出现错误
- 在流中使用Java 8 foreach循环移动到下一项
- 访问限制:'Application'类型不是API(必需库rt.jar的限制)
- 用Java计算两个日期之间的天数
- 碎片中的onCreateOptionsMenu
- 如何配置slf4j-simple
- 在Jar文件中运行类
- 带参数的可运行?
- TextView粗体通过XML文件?
- 如何使线性布局的孩子之间的空间?
- 我如何得到一个字符串的前n个字符而不检查大小或出界?
- 我可以在Java中设置enum起始值吗?
- Java中的回调函数
- c#和Java中的泛型有什么不同?和模板在c++ ?