我正在尝试修改一个Minecraft mod(gravisuite),每当我按下F时,"Gravitation Engine OFF/ON",但是我想改变这个字符串,我开始将"Gravitation Engine OFF"更换为"Gravitation Engine OFF"通过使用十六进制编辑器,但之后文件不再有效:/我尝试使用像jbe和cjbe和rej这样的工具,并且该字符串在常量池中,但它只会让我删除它...
有没有办法在不破坏它的情况下更改已编译的java类中的字符串?
谢谢
我通过一个小的调整编译了同一个类两次,首先使用“foo”,然后使用“foo-bar”
public class HelloWorld {
public static final String HELLO = "foo-bar";
}
Run Code Online (Sandbox Code Playgroud)
与“富”
000000b0 74 01 00 **03** 66 6f 6f 00 21 00 02 00 03 00 00 00 |t...foo.!.......|
000000c0 01 00 19 00 04 00 05 00 01 00 06 00 00 00 02 00 |................|
000000d0 07 00 01 00 01 00 08 00 09 00 01 00 0a 00 00 00 |................|
000000e0 1d 00 01 00 01 00 00 00 05 2a b7 00 01 b1 00 00 |.........*......|
000000f0 00 01 00 0b 00 00 00 06 00 01 00 00 00 01 00 01 |................|
00000100 00 0c 00 00 00 02 00 0d |........|
Run Code Online (Sandbox Code Playgroud)
与“foo-bar”
000000b0 74 01 00 **07** 66 6f 6f 2d 62 61 72 00 21 00 02 00 |t...foo-bar.!...|
000000c0 03 00 00 00 01 00 19 00 04 00 05 00 01 00 06 00 |................|
000000d0 00 00 02 00 07 00 01 00 01 00 08 00 09 00 01 00 |................|
000000e0 0a 00 00 00 1d 00 01 00 01 00 00 00 05 2a b7 00 |.............*..|
000000f0 01 b1 00 00 00 01 00 0b 00 00 00 06 00 01 00 00 |................|
00000100 00 01 00 01 00 0c 00 00 00 02 00 0d |............|
Run Code Online (Sandbox Code Playgroud)
看起来长度也被编码在结构中。注意 3 和 7...有关此结构的更多信息
对于 300 个字符的字符串,前两个字节是 01 2c。
因此,考虑到“Gravitation Engine Turned OFF”的长度为 29 个字符,我会确保将字符串之前的字节更改为 1D,目前应该为 19 个字符(“Gravitation Engine OFF/ON”为 25 个字符)
| 归档时间: |
|
| 查看次数: |
849 次 |
| 最近记录: |