我有一个模糊的jar文件,正在尝试反编译并进入eclipse项目。我可以使用jd-gui之类的工具轻松查看“源”,但由于文件名太长,因此无法保存。我需要某种可以重命名calss名称以及jar文件中该类的所有实例的工具。我编写了一个程序,从jar中提取所有文件,将它们重命名为class_1,class_2等,并将原始名称和新名称一起保存在文件中。我打算做一个全部替换操作来重命名java文件中的实例,但是由于我没有考虑软件包,所以它不起作用。另外,许多类都用诸如super或return之类的关键字命名,这在.class文件中似乎可以正常工作,但大多数IDE对此感到困惑,并到处抛出错误。我总共有1680个类文件,并且大多数看起来像这样:



如果有人可以推荐任何工具或方法,这些方法将允许我重命名这些文件或至少提取归档文件我会很感激的。

#1 楼

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

请注意,原始名称仍将保留在生成的文件中。至于在实际源文件中重命名,我编写了一个脚本来做到这一点(以及其他各种反混淆脚本),但是由于各种原因,我尚未公开发布它。如果您将罐子寄给我,我还是可以尝试为您进行模糊处理。

评论


我尝试了krakatau反编译器,它在反编译期间会产生很多错误,并且只会通过前几个文件。

–窒息
2014年6月6日15:54

@Ephyxia您能否在Github上打开一个错误,并显示确切的错误消息和要反编译的jar?

–锑
2014年3月6日17:01



它告诉我找不到文件。我认为这是因为文件夹的名称很长。某些具有长名称的文件被提取,但仅从常规文件夹中提取。

–窒息
2014年3月7日19:39

@Ephyxia,请在Github上发布您所使用的确切命令和目录结构的问题。

–锑
2014年3月7日在20:48