我需要反编译的项目使用的 API 是代码的主要部分。我知道/有这个 API,有什么方法可以将它提供给反编译器以便使用 API 中的对象吗?
示例(使用 CFR 反编译器):
Player sender = cmd.getSender();
Player target = cmd.getTarget();
World world = cmd.getWorld();
world.teleport(sender, target);
变成:
Object obj1 = cmd.getSender();
Object obj2= cmd.getTarget();
Object obj3 = cmd.getWorld();
// cast must be added manually or error
(World) obj3.teleport(obj1, obj2);
考虑到变量的声明和使用可能相隔一百行,并且一个方法可能使用多达 20 个不同的变量,这是非常烦人的。我知道您无法对名称做任何事情,但了解类型会非常有帮助。
有办法解决这个问题吗? (我没有反编译器的经验,所以我可能只是愚蠢)
最佳答案
没有任何反编译器能够始终反编译而不会出现任何错误。有时反编译得很好,有时则不然。最好的方法是拥有多个反编译器并相互使用,以减少反编译源中的错误。
如果你使用 Eclipse 我会建议这个 plugin .
或者您可以尝试这个单独的工具 Jar Explorer 。有树反编译器。这样您就可以轻松地与任何人一起玩。
关于java - 使用依赖项反编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56352983/