我使用JD反编译了一组类。
在其中一个类中,引用了类中的公共字段。我用上面提到的字段打开课程。想象一下,当我遇到这个时,我感到惊讶:
public enum agw
{
}
我得出结论,反编译器没有成功地反编译某种类类型,可能是枚举。我遇到过其中的一些。
另一个例子:
public enum acf
{
private final Class d;
private final int e;
private final acn f;
private final boolean g;
private acf(Class paramacn, int paramBoolean, acn arg5, boolean arg6)
{
d = paramacn;
e = paramBoolean;
Object localObject;
f = localObject;
boolean bool;
g = bool;
}
public Class a() {
return d;
}
public int b() {
return e;
}
public acn c() {
return f;
}
public boolean d() {
return g;
}
}
有谁知道这些课应该是什么?他们可以用原始形式代表什么?
感谢。
答案 0 :(得分:2)
我认为您尝试反编译的课程是obfuscated。从下面的代码可以清楚地看出:
private final Class d;
private final int e;
private final acn f;
private final boolean g;
private acf(Class paramacn, int paramBoolean, acn arg5, boolean arg6)
{
d = paramacn;
e = paramBoolean;
Object localObject;
f = localObject;
boolean bool;
g = bool;
}
如果您真的想要访问代码,请与所有者联系。否则,很难理解混淆代码。
答案 1 :(得分:2)
嗯,我相信这实际上是预期的行为,因为jad只支持(正确)高达1.4的Java版本。枚举在Java 1.5中引入。这可以解释一些事情。
答案 2 :(得分:1)
在反编译时,您应该使用多个反编译器。反编译器A可能会成功做某事并在另一件事情上反编译B。因此,将它们结合使用可以帮助您更轻松地完成整个画面。