一尘不染

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

java

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

  • 我可以使用dex2jar或apktool对其进行反编译,效果很好
  • 从jar文件中,我可以获取Java源代码(使用jd-gui)
  • 然后我可以修改Java文件

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

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

我的应用程序是一个基本的HelloWorld混乱处理。


阅读 295

收藏
2020-09-08

共1个答案

一尘不染

多亏克里斯·杰斯特·杨(Chris Jester-Young),我才得以使它成功!

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

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

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

  • 创建项目后,我将所有资源和清单替换为通过apktool获得的资源和清单

  • 我将从Jar中提取的Java文件粘贴到src文件夹中(尊重软件包)
  • 我根据需要修改这些文件
  • 一切都在编译!

/!\确保已从设备中删除了旧的apk,将引发错误,指出apk签名与旧的apk签名不同!

2020-09-08