如何使用安卓手机将 Jar 重新编译为 dex?



我已经使用 Apk 编辑器提取了 Dex 文件并使用 Jadex 进行了反编译 现在我想使用安卓手机将 Jar 重新编译为 Dex。 有人可以帮助我吗?

我假设你指的是Jadx而不是Jadex。

Jadx 具有将反编译项目另存为 gradle 项目的命令。

Gradle 项目可以加载到 Android Studio 中。从理论上讲,您可以重新编译应用程序并返回与原始应用程序相同的应用程序。

实际上,这在所有情况下的99.9%都不起作用,因为:

  1. Jadx 无法反编译某些方法。
  2. 生成的代码包含需要手动更正的小问题
  3. 非常复杂的函数可能是可反编译的,但代码略有变化,因此不像原始字节码那样工作。

一般来说,如果你想重新编译一个应用程序,使用 Jadx 反编译它是完全错误的方法。 在我看来,反编译和重新编译应用程序最可靠的方法是使用 apktool。在反编译的 smali 源中,您可以修改要更改的方法。 为了更好地理解代码,您也可以在 Jadx 中反编译相关的类/方法。

为了简化 smali 片段的构建,您可以使用 Android Studio:使用解码的代码部分 ba Jadx,将其复制到 Android Studio 项目中,编译并使用 Jadx 打开编译后的 APK 文件。选择包含代码的类,打开它的 samli 选项卡,然后将 smali 代码从中复制出来。这通常比直接在 Smali 中编程更容易。另请参阅此问题:转换 。Java 文件到 。斯马利文件

最新更新