在接触 Recaf 之前,我一般都是使用 JD-GUI, Luyten, 或是将需要反编译的 Jar 文件加入 IDEA 的 classpath 以使用 IDEA 的反编译器。
对于常规的还好说,不过遇到混淆的 Jar 文件,这两者的反编译的结果都多多少少有点问题,IDEA在实践中又太过于麻烦。
而 Recaf 则可以很好的解决这个问题。Recaf 内建多个反编译器可以在反编译出错时,切换到其他反编译器。
最重要的是,Recaf 不仅仅可以反编译,还可以修改 Jar。
如同在 IDE 中一样,只需要在代码编辑窗口中进行编辑,然后按 Ctrl+S 保存,Recaf 会完成对 bytecode 的编辑操作并保存替换原有的 Jar 文件。
还有一些额外的拓展功能,例如引用搜索等,可以很方便的进行逆向工程(有 IDEA 的味道了)。
提到搜索,值得一说的是,Recaf 的性能可以说是吊打 Luyten 好几条街。Luyten 的 decompile 以及搜索性能可以说是慢到发指了.....