在使用 dex2jar 和 JD-GUI 等工具后,我从 APK 中获得了 Java 类。众所周知,Java 字节码可以转换回 Java 类,因此大多数情况下它会通过一些工具进行优化和混淆(例如在 Android 的情况下使用 ProGuard),以使其免受其他人的影响。所以我得到的是混淆代码,我想让它没有错误、可读、可理解,以便我可以为自己的目的进一步修改它(仅供我个人使用,我无意侵犯任何版权)。因此,任何帮助,即建议、工具、帮助材料,以使这种混淆代码更接近开发人员编写的代码或使其无错误且易于理解,将对我有很大帮助。目前,我的重点是逆转 ProGuard 使用的混淆技术,例如当我尝试对自己的项目进行逆向工程时发现:
int
通过匹配R
逆向工程生成的文件,可以使用 id 更改资源值。- /条件大多转换为and 一些s 和
if
s 。else
while(true)
continue
break
- 内部类大多分解为单独的文件
因此,对于上述方式的任何其他技术和帮助材料,可以描述如何正确扭转它们将非常有帮助。