重命名 jar 文件中的类和包

逆向工程 爪哇 去混淆
2021-06-23 11:30:41

我有一个混淆的 jar 文件,我正在尝试反编译并进入 eclipse 项目。我可以使用 jd-gui 之类的工具轻松查看“源”,但我无法保存它,因为文件名太长。我需要某种工具来重命名 jar 文件中的类名称和该类的所有实例。我编写了一个程序来从 jar 中提取所有文件,将它们重命名为 class_1、class_2 等,并将原始名称与新名称一起保存在一个文件中。我计划只做一个 replace all 来重命名 java 文件中的实例,但它不起作用,因为我没有考虑包。此外,许多类都使用 super 或 return 等关键字命名,这在 .class 文件中似乎可以正常工作,但大多数 IDE 对此感到困惑并到处抛出错误。

混淆的文件名

如果有人可以推荐任何允许我重命名这些或至少提取存档的工具 ar 方法,我将不胜感激。

1个回答

如果原始类名与有效文件名不对应,Krakatau 反编译器将自动将输出文件重命名为有效文件名。

请注意,原始名称仍将保留在生成的文件中。至于在实际的源文件中重命名,我写了一个脚本来做到这一点(以及其他各种反混淆脚本),但由于各种原因我没有公开发布它。如果你把罐子发给我,我可以试着为你去混淆它。