这些是编码吗?

发布于 2024-08-19 15:38:59 字数 974 浏览 1 评论 0原文

可能的重复:
jsr 关键字是什么意思?

我使用反编译器来反编译 .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] 之后的代码,它们是什么意思意思是?

Possible Duplicate:
What does the jsr keyword mean?

i used a decompiler to decompile a .class file it seems that it decompiled everything except some code at the bottom are very strange and since im new to java im not sure what they mean:

  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;
  }

see the code after tmp5_2[0] for example, what do they mean?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

余厌 2024-08-26 15:38:59

快速浏览一下,我可能完全错了,它看起来像是被混淆工具混淆的代码,以防止您尝试执行的操作(逆向工程)

Judging from a quick glance, and I could be totally wrong, it looks like code that has been obfuscated by an obfuscation tool as to prevent what you are trying to do (reverse engineering)

画离情绘悲伤 2024-08-26 15:38:59

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

您反编译得到的字节码很可能被某些混淆器混淆了,这些混淆器也混淆了字符串常量(我偶尔使用的唯一混淆器是 ZKM 和做类似的事情)。

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

jsr 50;

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

jsr 实际上是一个 gosub (即它将返回地址压入堆栈并在指定的偏移处调用字节码,它通常用于实现 finally-blocks),所以这段代码可能用于跳转到某个字符串“解密”子例程(我将解密放在引号中,因为它很可能不是这里工作的强排版解密)。

Note that the code you post is not valid Java code.

The bytecode you de-compiled to get this was most likely obfuscated by some obfuscator that also obfuscates String constants (the only obfuscater I use occasionally is ZKM and that does something similar).

Note this code in your sample:

jsr 50;

That's not a valid Java statement and is included by the decompiler to tell you that there was a bytecode instruction that it couldn't de-compile into a valid Java source statement.

jsr is effectively a gosub (i.e. it pushes the return address on the stack and invokes the bytecode at the specified offset, it's usually used to implement finally-blocks), so this code is probably used to jump to some String "decryption" subroutine (I put decryption in quotes because it most likely isn't a strongly typographic decryption at work here).

踏月而来 2024-08-26 15:38:59

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

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

These are most likely encrypted strings for use within the application. The applet should include some sort of decryption routine for them or it wouldn't be able to use them. This looks to me like a poorly decompiled or obfuscated initialization code for some field in the class called z (an array of String).

As far as Java is concerned, these are just regular string constants. There is no special significance to them whatsoever.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文