java - 除了读取 smali 代码之外,还有其他逆向方法吗?

标签 java android smali dex2jar

我正在逆向一个 Android 应用程序。我想修改并重建它。我使用APK Studio(这几乎是 apktool 的 GUI 版本)来获取 apk 中的文件。现在阅读 smali 代码非常困难。

我还尝试解压它,获取classes.dex,然后获取jar文件(使用dex2jar)并在jd-gui中打开它

那么我可以使用任何替代方法来重建应用程序而无需通过 smali 代码吗??

我确切地知道我必须更改哪个类和哪个代码。但我无法在 smali 文件中找到相同的代码。

最佳答案

已知通过dex2jar进行两步转换然后反编译Java类文件会产生问题。主要原因是 DEX 是基于寄存器的架构,而 Java 是基于堆栈的架构。两个系统之间的转换非常复杂且容易出错。

因此,我更喜欢“一步”反编译(直接 DEX 到 Java 源代码),因为它是由 Jadx 完成的。 - Dex 到 Java 反编译器

Jadx通常可以反编译大部分方法。但是,对于非常复杂的方法或最初不是从 Java 源代码编译的方法,反编译可能会失败。

关于java - 除了读取 smali 代码之外,还有其他逆向方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55180946/

相关文章:

java - 我如何收到客户端断开连接的通知?

java - Tomcat 无法加载我的 jsp 文件 - 服务器未找到当前表示

java - 无法从解析中解码图像

dalvik - DalvikVM如何处理switch并尝试smali代码

android - 什么是 Smali Code Android

java - 更改默认布局时应用程序崩溃说,不幸的是应用程序已停止

android - 通过 C++ 创建 SQLite 数据库。通过Java SDK访问吗?

android - android studio中ImageView中的蓝色边框是什么?

android - Firebase 动态链接生命周期

android - Dalvik 字节码中的 "ins"和 "outs"是什么?