当前位置: 首页 > 知识库问答 >
问题:

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

程钧
2023-03-14

我已经提取了Dex文件使用Apk编辑器和反编译使用Jadex现在我想重新编译Jar到Dex使用Android手机可以有人帮我吗?

共有1个答案

上官凯泽
2023-03-14

我想你指的是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文件转换为. Smali文件

 类似资料:
  • 问题内容: 我无法使javac识别我要扩展其类的外部.jar文件。我在同一目录中有两个文件:TestConsole.java和acm.jar。我正在使用以下命令从同一目录进行编译: 但是似乎javac只是忽略了acm.jar。它给了我错误: 当然,acm.program是acm.jar中的一个包。acm.jar中的所有类均已编译;我只想在我的课程中使用它们,而不是编译它们。 我究竟做错了什么? 我

  • 问题内容: 我正在修改其内部html的指令。到目前为止的代码: 它起作用,除了内部html不按angular求值。我想触发的子树重估。有没有办法做到这一点? 谢谢 :) 问题答案: 你必须像你的内部html一样

  • 问题内容: 如何将我的Python应用程序转换为?我编写了一个程序,想知道如何使其他人使用它。我使用Python 3.3。我搜索了一下,但找不到任何东西。 问题答案: cx_Freeze这样做,但是创建了一个具有很多依赖关系的文件夹。py2exe现在执行此操作,并使用 –bundle-files 0选项,仅创建一个EXE,这可能是对您问题的最佳解决方案。 更新:遇到py2exe无法“查找”的第三方

  • 我正在尝试使用android BLE将应用程序通知从一个android设备传递到另一个android设备。所以接收通知的设备将是GATT服务器(所以可以从多个客户端接收通知,但一次只能接收一个),而发送通知的设备将是GATT客户端?我对传递应用程序通知有点困惑,我不知道该怎么做。此外,我还建议除了BLE之外,还有其他好的选择吗。

  • 所有使用指南都显示了如何在单个 JAR 文件上运行。但我相信大多数项目通常在类路径上使用多个JAR(例如Gradle默认方式)。如何告诉本机映像将它们全部捆绑到一个可执行文件中?