如何在不编译的情况下将 Java 代码转换为 Jasmin?
How can I convert Java code to Jasmin without compiling?
我需要将 class 的一些片段转换成 Jasmin(或者如果可能的话,Smali)并将新代码与反汇编代码混合在一起。
我想知道的是:这可能吗?如果是,怎么做?
(我有 java 个文件的 diff 补丁,但没有 Jar 文件的源代码,所以我决定这样做)
这取决于。
1)如果你说的是android代码(calsses.dex),你可以使用apktool对其进行反汇编,然后inject/edit反汇编代码。最后,您可以重新组装该代码(仍然使用 apktool,当然您的新代码不应包含语法错误)。您还需要签署新的 apk 才能 运行 在您的 android 设备上。
2) 如果你只是想从一些 jar 中获取源代码,你可以使用像 JDGUI 这样的反编译器反编译它们并获取源代码(在 JAVA lang 中)。请注意,您的 jar 文件可能会被混淆,因此生成的源代码可能会混淆或无法正常工作。
我想说的是,如果您有一个带有您想要修改的代码的 apk,最好的办法是使用 apktool 反汇编它。否则,如果您尝试这样做只是为了从 jars 中恢复源代码(也许您丢失了原始源代码??),您可以尝试使用反编译器。
希望这对您有所帮助。
我需要将 class 的一些片段转换成 Jasmin(或者如果可能的话,Smali)并将新代码与反汇编代码混合在一起。
我想知道的是:这可能吗?如果是,怎么做?
(我有 java 个文件的 diff 补丁,但没有 Jar 文件的源代码,所以我决定这样做)
这取决于。 1)如果你说的是android代码(calsses.dex),你可以使用apktool对其进行反汇编,然后inject/edit反汇编代码。最后,您可以重新组装该代码(仍然使用 apktool,当然您的新代码不应包含语法错误)。您还需要签署新的 apk 才能 运行 在您的 android 设备上。 2) 如果你只是想从一些 jar 中获取源代码,你可以使用像 JDGUI 这样的反编译器反编译它们并获取源代码(在 JAVA lang 中)。请注意,您的 jar 文件可能会被混淆,因此生成的源代码可能会混淆或无法正常工作。
我想说的是,如果您有一个带有您想要修改的代码的 apk,最好的办法是使用 apktool 反汇编它。否则,如果您尝试这样做只是为了从 jars 中恢复源代码(也许您丢失了原始源代码??),您可以尝试使用反编译器。
希望这对您有所帮助。