在APK上反编译.smali文件
在APK上反编译.smali文件
这个问题已经有答案了:
我下载了APK Manager,它让我解压APK文件。
但它只解压了文件,没有将.smali文件反编译为.java文件。
是否有可能将.smali文件反编译为.java文件?
admin 更改状态以发布 2023年5月22日
现在有一款新的跨平台(java)和开源工具能够实现这一功能,只需访问https://bytecodeviewer.com
=========
编辑:
截至2017年4月,谷歌开发了一款新的开源工具,可以实现我们一直在寻找的功能 =>https://github.com/google/android-classyshark
不,APK Manager会反编译 .dex
文件为 .smali
和二进制的 .xml
文件,以人类可读的xml格式展示。
流程(基于APK Manager 4.9)是首先选择包(选项22),然后反编译(选项9)。如果你按1而不是9,那么你只是解压它,这在只想交换.png图像时很有用。
目前没有可用的工具可以反编译回 .java
文件,并且大概率不会有。有一种替代方法是使用dex2jar将dex文件转换为 .class
文件,然后使用jar反编译器(如免费的jd-gui)转换为纯文本Java。这个过程远非最优,但足够好以便于读取。
dex2jar: https://github.com/pxb1988/dex2jar
jd-gui: http://jd.benow.ca/
编辑: 我知道在这里的SO中有一个非常相似的答案问题... decompiling DEX into Java sourcecode