我正在尝试修改一个minecraft mod(gravisuite),每当我按F键时,它就会将“重力引擎关闭/打开”,但是我想更改此字符串,我首先将“重力引擎关闭”替换为“重力引擎关闭”通过使用十六进制编辑器,但此后该文件不再有效:/我尝试使用 jbe 和 cjbe 和 rej 等工具,该字符串位于常量池中,但它只会让我删除它...
有什么方法可以更改已编译的java类中的字符串而不破坏它吗?
Thanks
我通过一个小的调整编译了同一个类两次,首先使用“foo”,然后使用“foo-bar”
public class HelloWorld {
public static final String HELLO = "foo-bar";
}
与“富”
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 |........|
与“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 |............|
看起来长度也被编码在结构中。注意 3 和 7...有有关此结构的更多信息
对于 300 个字符的字符串,前两个字节是 01 2c。
因此,考虑到“Gravitation Engine Turned OFF”的长度为 29 个字符,我会确保将字符串之前的字节更改为 1D,目前应该为 19 个字符(“Gravitation Engine OFF/ON”为 25 个字符)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)