有没有可能反编译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狂热分子。 尝试一下!