反编译APK,对其进行修改,然后重新编译

2022-08-31 12:09:44

我需要修改现有的APK,修改源代码,然后重新编译它。

  • 我可以使用dex2jar或apktool反编译它,它工作得很好
  • 从jar文件中,我可以获得java源代码(使用jd-gui)
  • 然后我可以修改java文件

但是现在我想知道如何重新编译java文件并将它们放回jar文件中!(jar部分应该很容易,主要问题似乎是如何为Android重新编译java文件)

我知道另一个解决方案是使用apktool,然后修改smali文件,但是当我们想要添加大量代码时,它似乎真的很复杂!

我的应用程序是一个基本的HelloWorld whitout混淆。


答案 1

多亏了Chris Jester-Young,我设法让它工作!

我认为我设法做到这一点的方式只适用于非常简单的项目:

  • 使用Dex2jar,我获得了Jar。
  • 使用jd-gui,我将我的Jar转换回Java文件。
  • 使用apktool,我得到了Android清单和资源文件。

  • 在Eclipse中,我创建一个与旧项目设置相同的新项目(检查清单文件中的所有信息)

  • 创建项目时,我将用apktool获得的资源和清单替换所有资源和清单
  • 我将从Jar中提取的java文件粘贴到src文件夹中(尊重软件包)
  • 我用我需要的东西修改这些文件
  • 一切都在编译!

\!\ 请确保您从设备中删除了旧的apk,将抛出一个错误,指出apk签名与旧apk签名不同!


答案 2

我知道这个问题仍然得到回答,我想传递一个信息,如何在没有dexjar的情况下从apk获取源代码。

一个在线反编译器的安卓apks

  1. 从本地计算机上传apk
  2. 稍等片刻
  3. 下载邮政编码

我不知道这有多可靠。

@darkheir答案是手动反编译apk的方法。它有助于我们了解Apk创建中的不同阶段。

获得源代码后,请按照接受的答案中提到的步骤进行操作

报告这么多广告在这个链接另一个在线APK解编译器@Andrew Rukinhttp://www.javadecompilers.com/apk

还值得。向创作者致敬。


推荐