有没有将smali转换为Java进行编辑,以及反之的方法?

8

我目前正在修改一款应用程序,但我现在还是初学者。我想问是否有将smali文件转换为Java进行编辑及其反向操作的方法?我已经搜索了整个互联网,甚至xda论坛也无法给我准确的答案。虽然有很多方法,但没有一个方便易行。

1个回答

6
您可以使用 Apktool 来反编译/解码 APK 文件,并重新构建它。生成的文件格式是 smali 格式。为了更容易理解/找到要更改的代码,您可以使用 JD GUI 从 APK 文件中生成 Java 源代码。生成的 Java 文件(大多数情况下)不完整,不能用于重新编译 APK!在 Android Studio 和 IntelliJ 中,您可以使用 Java2Smali 插件将 Java/Kotlin 代码转换为 smali。

我已经在使用JD GUI,但我们只能在其中查看代码。我需要一些用于编辑Java代码而不是Smali代码,然后重新编译APK的工具。 - Shiraz Ahmad
@ShirazAhmad,你可以从JD Gui中保存代码,以便从你喜欢的IDE中查看和编辑它,但是你无法从中创建APK,因为它不是完整的Java源代码。你可以编辑你的smali代码,并从中创建一个APK。如果这么容易,我们就可以破解Playstore中的任何应用/游戏了:P - amarildo.xyz
哈哈哈……我也在想,这么简单的事情可能不是那么简单,虽然可能有其他的做法……我的最后一个问题是,我像这样仔细地理解Java代码,然后在smali文件中找到完全相同的代码并进行编辑。这是所有应用程序修改者的方式吗?顺便说一句,谢谢 :) - Shiraz Ahmad
@ShirazAhmad,如果你正在编辑的应用程序没有混淆(使用pro guard或其他应用程序),并且JD Gui可以完全打开你需要修改的文件,那么这是最有效的方法。如果你运气不好,遇到了混淆+没有Java源代码的情况(就像我目前个性化的应用程序一样),那么你必须仔细跟踪活动,识别方法,然后编辑你想要的源代码。IntelliJ + Android Studio具有出色的搜索功能和正则表达式,可帮助你找到所需的源代码。 - amarildo.xyz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接