aload_0
aload_0
sipush 2377
invokespecial game/engine/serverHook createGameServerSocket (I)Ljava/net/Socket;
大家好,我上面有这段代码。任何人都可以告诉我如何将长值加载到堆栈而不是sipush支持的值?我认为它支持32768 +/-
我需要比这个更高的数字,但我不知道如何使用长值或任何大于此的值。
感谢任何帮助。
sipush 2377<是套接字的端口,我需要改变它。
是的,我确实需要使用字节码。
答案 0 :(得分:0)
编辑,你真正想要的是一个int,而不是一个短。为此,请使用ldc
或ldc_w
指令。 (Ldc仅适用于最大255的常量池索引。如有疑问,请使用ldc_w,因为它始终有效)
要将常量长按到堆栈上,您需要使用ldc2_w
指令。但是,由于您尝试调用的功能不会花费很长时间,因此无效。
实施例。这使用Krakatau汇编语法。我相信它也适用于Jasmin。
aload_0
aload_0
ldc_w 2377
invokespecial game/engine/serverHook createGameServerSocket (I)Ljava/net/Socket;