2017-04-08 119 views
0

今天我在网上搜索并用java的汇编语言找到了一个代码,然后我将它重新转换为java代码,发现了一些奇怪的代码,如“tmp”,这个“tmp_xxx”是什么意思? 这里是代码:tmp_xxx在java中意味着什么?

 private static String encrypted() 
    { 
    byte[] arrayOfByte = new byte[32]; 
    byte[] tmp8_6 = arrayOfByte; 
    tmp8_6[0] = 104; 
    byte[] tmp13_8 = tmp8_6; 
    tmp13_8[1] = 116; 
    byte[] tmp18_13 = tmp13_8; 
    tmp18_13[2] = 116; 
    byte[] tmp23_18 = tmp18_13; 
    tmp23_18[3] = 112; 
    byte[] tmp28_23 = tmp23_18; 
    tmp28_23[4] = 58; 
    byte[] tmp33_28 = tmp28_23; 
    tmp33_28[5] = 47; 
    byte[] tmp38_33 = tmp33_28; 
    tmp38_33[6] = 47; 
    byte[] tmp44_38 = tmp38_33; 
    tmp44_38[7] = 112; 
    byte[] tmp50_44 = tmp44_38; 
    tmp50_44[8] = 97; 
    byte[] tmp56_50 = tmp50_44; 
    tmp56_50[9] = 115; 
    byte[] tmp62_56 = tmp56_50; 
    tmp62_56[10] = 116; 
    byte[] tmp68_62 = tmp62_56; 
    tmp68_62[11] = 101; 
    byte[] tmp74_68 = tmp68_62; 
    tmp74_68[12] = 98; 
    byte[] tmp80_74 = tmp74_68; 
    tmp80_74[13] = 105; 
    byte[] tmp86_80 = tmp80_74; 
    tmp86_80[14] = 110; 
    byte[] tmp92_86 = tmp86_80; 
    tmp92_86[15] = 46; 
    byte[] tmp98_92 = tmp92_86; 
    tmp98_92[16] = 99; 
    byte[] tmp104_98 = tmp98_92; 
    tmp104_98[17] = 111; 
    byte[] tmp110_104 = tmp104_98; 
    tmp110_104[18] = 109; 
    byte[] tmp116_110 = tmp110_104; 
    tmp116_110[19] = 47; 
    byte[] tmp122_116 = tmp116_110; 
    tmp122_116[20] = 114; 
    byte[] tmp128_122 = tmp122_116; 
    tmp128_122[21] = 97; 
    byte[] tmp134_128 = tmp128_122; 
    tmp134_128[22] = 119; 
    byte[] tmp140_134 = tmp134_128; 
    tmp140_134[23] = 47; 
    byte[] tmp146_140 = tmp140_134; 
    tmp146_140[24] = 85; 
    byte[] tmp152_146 = tmp146_140; 
    tmp152_146[25] = 52; 
    byte[] tmp158_152 = tmp152_146; 
    tmp158_152[26] = 101; 
    byte[] tmp164_158 = tmp158_152; 
    tmp164_158[27] = 122; 
    byte[] tmp170_164 = tmp164_158; 
    tmp170_164[28] = 83; 
    byte[] tmp176_170 = tmp170_164; 
    tmp176_170[29] = 51; 
    byte[] tmp182_176 = tmp176_170; 
    tmp182_176[30] = 113; 
    byte[] tmp188_182 = tmp182_176; 
    tmp188_182[31] = 101; 
    tmp188_182; 
    String str = ""; 
    int j = arrayOfByte.length; 
    int i = 0; 
    if (i < j) 
    { 
     int k = arrayOfByte[i]; 
     if (k == 48); 
     while (true) 
     { 
     i += 1; 
     break; 
     if (k == 127) 
      str = str.concat("π"); 
     else 
      str = str.concat(Character.toString((char)k)); 
     } 
    } 
    return str; 
    } 
+1

它的变量名? – TypedSource

+3

从你提供的信息来看,我认为这是反编译器在你反编译的字节码中使用了命名变量的方式。你使用了哪一个反编译器? –

+0

这些看起来像字节名称。 – Rab

回答

2

所以名称与“TMP”只是字节的名字,编译器不能备份的旧名称所以它用tmp取代了名字。

我已经清理的代码,这里是代码,而TMP码

希望这有助于:)

代码:

private static String encrypted() { 
    byte[] arrayOfByte = new byte[32]; 
    arrayOfByte[0] = 104; 
    arrayOfByte[1] = 116; 
    arrayOfByte[2] = 116; 
    arrayOfByte[3] = 112; 
    arrayOfByte[4] = 58; 
    arrayOfByte[5] = 47; 
    arrayOfByte[6] = 47; 
    arrayOfByte[7] = 112; 
    arrayOfByte[8] = 97; 
    arrayOfByte[9] = 115; 
    arrayOfByte[10] = 116; 
    arrayOfByte[11] = 101; 
    arrayOfByte[12] = 98; 
    arrayOfByte[13] = 105; 
    arrayOfByte[14] = 110; 
    arrayOfByte[15] = 46; 
    arrayOfByte[16] = 99; 
    arrayOfByte[17] = 111; 
    arrayOfByte[18] = 109; 
    arrayOfByte[19] = 47; 
    arrayOfByte[20] = 114; 
    arrayOfByte[21] = 97; 
    arrayOfByte[22] = 119; 
    arrayOfByte[23] = 47; 
    arrayOfByte[24] = 85; 
    arrayOfByte[25] = 52; 
    arrayOfByte[26] = 101; 
    arrayOfByte[27] = 122; 
    arrayOfByte[28] = 83; 
    arrayOfByte[29] = 51; 
    arrayOfByte[30] = 113; 
    arrayOfByte[31] = 101; 

编码愉快! :)

+0

为了更有帮助,该数组是一个以“http:// pastebin”开头的字符串。 – zaph

+0

@zaph我已经解码了asii值。这是一个包含某种用户名的原始pastebin链接。我不想泄漏制作代码的个人数据,所以我没有将它包含在这里:) – Rab

1

就在varriable名称: TMP =临时(临时)

1

当您按照以前的方式反编译Java字节码文件时,反编译器通常无法找到局部变量等的原始名称。 (局部变量的名称经常被忽略,它取决于使用的原始编译器和编译器开关)。

但Java语言要求局部变量有名称。所以反编译器需要生成一些名称来放入它输出的源代码。名称通常基于一些简单的模式。这些生成的名称没有与它们相关的内在含义/语义。你(试图理解字节码的人)必须通过弄清楚代码实际上在做什么来赋予它们意义。


其他意见是,反编译代码并没有真正有意义。我怀疑字节码被混淆了;即被处理以使它们难以用现成的反编译器去反编译。导致的问题:

  • 你为什么要这样做?
  • 它合法吗?

'因为它是非法的,或道德上可疑(如破解许可证密钥或DRM计划),我们不应该帮助你。