反混淆Java,对jar包中的类进行批量重命名

4
我有一个JAR文件,其中的类文件已经被混淆。我很愿意手动反混淆它,但问题是类名太长了,Windows无法将它们保存到磁盘。有没有工具可以接收JAR文件,并重命名所有类、方法和字段呢?
此外,请不要给出“没有理由反编译”之类的答案,因为它们既没有为社区提供任何有用的信息,也不正确。在我这个情况下,我正在检查这个特定应用程序中的安全问题。

1
你有没有查看过 https://dev59.com/t3I-5IYBdhLWcg3w0L_x? - Thilo
@Thilo 是的,但是据我所知,它们都需要从jar文件中提取类。 - Leagsaidh Gordon
你尝试过向制造商获取非混淆版本吗?如果您解决安全问题,这对他们也有利。 - rsp
4
“另外,请不要回答说没有解编的好理由等等。” - 我不会这么说。但我会说,如果你无法从供应商那里获得非混淆代码,那么你应该开始寻找新的供应商。并告诉我们他们是谁,这样我们也可以避免他们!” - Stephen C
说实话,在文件名前使用//?/前缀可以在Windows上更自由地命名文件(例如,长度限制增加到约30k,并允许使用许多特殊字符)。 - Antimony
2个回答

2
用现代工具来处理这个问题的最佳方法是使用 Proguard 来简单地混淆类/成员名称。然后使用诸如 Enigma 的工具手动创建映射关系。
我还正在使用 Java-ASM 编写程序,将映射转换为可运行的 Jar 文件。仅使用 Engima 导出时效果不佳。

1

我可能会在虚拟机中使用反混淆器和一些Linux发行版。
解混淆后,您可以将文件打包成zip / jar格式,并在Windows环境中继续开发。

我建议使用VirtualBoxUbuntu


谢谢,我没有想到过。我有一个虚拟机,需要用Linux时我会用它。 - Leagsaidh Gordon

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