Java:反编译后的奇怪结果

标签 java obfuscation decompiler

我有一个奇怪的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;
}

我只是想知道为什么编译器/混淆器可以生成这样的类字节代码,我的意思是方法签名。有人知道混淆器可以做到这一点吗?

最佳答案

Java 字节码支持在 Java 源代码中无效的构造。混淆器通过修改字节码以使用这些结构来利用这一事实(同时仍然给出与未混淆的字节码相同的结果)。

关于Java:反编译后的奇怪结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4437179/

相关文章:

java - JAVA DB 是否兼容 Oracle 11 G?

c - 反编译后的汇编代码

java - 使用混淆器时的异常行为

eclipse - 在 Eclipse 中搜索 *.class 文件

java - Eclipse Mars Java 反编译器

java - 什么是java中的虚引用

java 8 具有公共(public)多个字段的对象列表中的求和字段

java - 在 Java 中实现 Lucene 搜索的最佳实践

java - 如何告诉 proguard 保持枚举常量和字段

css - Gwt Css 和 uibinder no-obfuscation 不工作