【发布时间】:2011-05-25 03:27:01
【问题描述】:
我有一个奇怪的 jar 文件,它包含一些类,当我使用 JD Decompiler 时,它会显示如下一段:
public final void a(ak aa) {
this.jdField_a_of_type_Ak = aa;
}
public final void a(cn ccn) {
this.jdField_a_of_type_Cn = ccn;
}
public final cN a() {
return this.jdField_a_of_type_CN;
}
public final void a() {
super.b();
}
public final boolean a() {
return this.jdField_a_of_type_Boolean;
}
我只是想知道为什么编译器/混淆器可以产生这样的类字节码,我的意思是方法签名。有人知道混淆器可以做到这一点吗?
【问题讨论】:
-
您已经展示了 5 个方法 - 哪个方法签名让您感到困扰?
-
你问的是重载的返回类型(最后三个)吗?
-
我的意思是最后三个,
return类型不包含在方法签名中,所以这些方法是重复的,对吧? -
在字节码级别,方法签名包括返回类型。因此,即使在 Java 中无效,它也可以根据返回类型唯一地识别方法。
-
注意:字节码不限于Java,它可能被Scala等其他语言使用。
标签: java obfuscation decompiler