有没有可能反编译Android的.apk文件?
用户是否可以将我的应用程序的apk文件转换回实际的代码? 如果他们这样做 – 有什么办法来防止这种情况?
首先,一个apk文件只是一个修改后的jar文件。 所以真正的问题是他们可以反编译dex文件里面。 答案是有点。 已经有反汇编,如dedexer和smali 。 您可以期望这些只会变得更好,理论上最终应该可以反编译为实际的Java源代码(至less有时候)。 查看上一个将DEX反编译成Java源代码的问题 。
你应该记住的是混淆从来没有工作。 select一个好的执照,并尽力通过法律来执行。 不要用不可靠的技术手段浪费时间。
反编译的APK文件是可能的。 但是,如果代码被模糊处理,则可能难以理解。
ApkTool查看APK文件中的资源
- 提取AndroidManifest.xml和res文件夹中的所有内容(布局xml文件,图像,web视图上使用的htmls等..)
- 命令:
apktool.bat d sampleApp.apk
- 注意:您可以通过使用7-zip之类的zip实用程序来实现此目的。 但是,它也提取所有.class文件的.smali文件。
使用dex2jar
- 从.apk文件生成.jar文件,我们需要JD-GUI从这个.jar文件中查看源代码。
- 命令:
dex2jar sampleApp.apk
使用JD-GUI反编译.jar
- 反编译.class文件(在android应用程序的情况下是模糊的,但是在其他.jar文件的情况下获得可读的原始代码)。 即,我们从应用程序中获取.java。
我也可以补充说,现在有可能在线反编译Android应用程序,不需要软件!
这里有2个选项给你:
下载这个jadx工具https://sourceforge.net/projects/jadx/files/
解压缩和比在lib文件夹中运行jadx-gui-0.6.1.jar文件现在浏览你的apk文件。 完成。 自动apk将反编译并保存按保存button。 希望它能为你工作。 谢谢
有时你会使用dex2jar
/ apktool
破坏代码,尤其是在循环中。 为了避免这种情况,请使用jadx ,它将dalvik字节码反编译成java源代码,而不是像dex2jar
那样创build一个.jar
/ .class
文件(我认为,apktool使用dex2jar)。 它也是开源的,正在积极发展。 它甚至有一个graphics用户界面,为GUI狂热分子。 尝试一下!