Java 这些是编码代码吗?

Java 这些是编码代码吗?,java,applet,decompiling,Java,Applet,Decompiling,可能重复: 我用反编译器反编译了一个.class文件,它似乎反编译了所有的东西,除了底部的一些代码。这些代码非常奇怪,因为我是java新手,我不确定它们的意思: static { String[] tmp5_2 = new String[6]; jsr 50; tmp5_2[0] = "pH@JeAE"; String[] tmp13_5 = tmp5_2; jsr 42; tmp13_5[1] = "lRMMoF"; Strin

可能重复:

我用反编译器反编译了一个.class文件,它似乎反编译了所有的东西,除了底部的一些代码。这些代码非常奇怪,因为我是java新手,我不确定它们的意思:

  static
  {
    String[] tmp5_2 = new String[6];
    jsr 50;
    tmp5_2[0] = "pH@JeAE";
    String[] tmp13_5 = tmp5_2;
    jsr 42;
    tmp13_5[1] = "lRMMoF";
    String[] tmp21_13 = tmp13_5;
    jsr 34;
    tmp21_13[2] = "KHUT;\f\19VSv\rRHJkBJH@dL\18OAu";
    String[] tmp29_21 = tmp21_13;
    jsr 26;
    tmp29_21[3] = "\18\14\22\n1\r\f\15\21";
    String[] tmp37_29 = tmp29_21;
    jsr 18;
    tmp37_29[4] = "wTD\4OJRKEWJXDK@SLMAu\3UR\4NMPHJd\r";
    String[] tmp45_37 = tmp37_29;
    jsr 10;
    tmp45_37[5] = "KHUT;\f\19\16\226\r\f\15\20/\18\19RP`WIR";
    z = tmp45_37;
    break label68:
    label68: localObject = returnAddress;
  }

参见
tmp5_2[0]
后面的代码,例如,它们是什么意思?

这些很可能是在应用程序中使用的加密字符串。小程序应该为它们包含某种解密例程,否则它将无法使用它们。在我看来,对于名为
z
(字符串数组)的类中的某些字段,这看起来像是一个反编译得很差或模糊的初始化代码


就Java而言,这些只是常规的字符串常量。对它们没有任何特殊意义。

这些很可能是应用程序中使用的加密字符串。小程序应该为它们包含某种解密例程,否则它将无法使用它们。在我看来,对于名为
z
(字符串数组)的类中的某些字段,这看起来像是一个反编译得很差或模糊的初始化代码


就Java而言,这些只是常规的字符串常量。这对他们来说没有什么特别的意义。

从快速浏览的角度来看,我可能是完全错误的,它看起来像是被模糊处理工具模糊化了的代码,以防止你试图做什么(逆向工程)

从快速浏览的角度来看,我可能是完全错误的,它看起来像是被模糊处理工具模糊处理过的代码,以防止您尝试执行的操作(逆向工程)

请注意,您发布的代码不是有效的Java代码

您为获取此信息而反编译的字节码很可能被一些模糊器模糊化了,这些模糊器也模糊化了字符串常量(我偶尔使用的唯一模糊器是,它做了类似的事情)

请注意示例中的以下代码:

jsr 50;
这不是一条有效的Java语句,反编译器包含它是为了告诉您有一条字节码指令无法反编译为有效的Java源语句


jsr
实际上是一个
gosub
(即,它在堆栈上推送返回地址并在指定的偏移量调用字节码,它通常用于实现
最终
-块),因此此代码可能用于跳转到某个字符串“解密”子例程(我在引号中加上了解密,因为它很可能不是一个很强的排版解密)。

请注意,您发布的代码不是有效的Java代码

您为获取此信息而反编译的字节码很可能被一些模糊器模糊化了,这些模糊器也模糊化了字符串常量(我偶尔使用的唯一模糊器是,它做了类似的事情)

请注意示例中的以下代码:

jsr 50;
这不是一条有效的Java语句,反编译器包含它是为了告诉您有一条字节码指令无法反编译为有效的Java源语句


jsr
实际上是一个
gosub
(即,它在堆栈上推送返回地址并在指定的偏移量调用字节码,它通常用于实现
最终
-块),因此此代码可能用于跳转到某个字符串“解密”子例程(我把解密放在引号里,因为它很可能不是一个很强的排版解密).

是否有解密这些字符串的方法,如果有,如何解密?除非您知道它们是如何加密的,否则无法知道如何解密。您到底在反编译什么?简短的答案是:是。较长的答案是:小程序必须解密这些字符串才能工作(除非它们是加密密钥,这是很可能的)。因此,小程序代码必须包含解密例程,如果它们使用的算法中存在这样的东西,则可能还包含密钥。是否有方法解密这些字符串,如果有,如何解密?除非您知道这些字符串是如何加密的,否则无法告诉如何解密。您以任何方式反编译了什么?简短的回答是:是的。时间越长答案是:小程序必须解密这些字符串才能工作(除非它们是加密密钥,这是很可能的)。因此,小程序代码必须包含解密例程,如果他们使用的算法存在这样的问题,则可能还包含密钥。为什么要反编译?请与作者谈谈。几乎没有编程理由要反编译代码。为什么要反编译?请与作者谈谈。几乎没有没有编程理由反编译代码。另外,请检查您签署/点击以获取软件的许可协议。如果它没有明确禁止反向工程,我会非常惊讶!此外,请检查您签署/点击以获取软件的许可协议。如果它没有显示,我会非常惊讶它禁止逆向工程!