《re:从零开始的java逆向基础》#6数组、字符串
public class Main { publicstatic int[] s = {1,2,3,4,5,6};} 定义数组 反编译 Code: stack=4, locals=0, args_size=0 0: bipush 6 2: newarray int 4: dup 5: iconst_0 6: iconst_1 7: iastore 8: dup 9: iconst_1 10: iconst_2 11: iastore 12: dup 13: iconst_2 14: iconst_3 15: iastore 16: dup 17: iconst_3 18: iconst_4 19: iastore 20: dup 21: iconst_4 22: iconst_5 23: iastore 24: dup 25: iconst_5 26: bipush 6 28: iastore 29: putstatic #2 // Field s: 32: return dup复制栈顶数值并压入栈newarray 创建一个数组iastore 将指定的值存入指定索引位置 再看看字符串 public class Main { publicstatic void main() { Stringh = "hello"; SYstem.out.println(h+ "world"); }} 反编译 Code: stack=3, locals=1,args_size=0 0: ldc #2 // String hello 2: astore_0 3: getstatic #3 //Field java/lang/System.out:Ljava/io/PrintStream; 6: new #4 // class java/lang/StringBuilder 9: dup 10: invokespecial #5 // Methodjava/lang/StringBuilder."<init>":()V 13: aload_0 14: invokevirtual #6 // Methodjava/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 17: ldc #7 // String world 19: invokevirtual #6 // Methodjava/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 22: invokevirtual #8 // Methodjava/lang/StringBuilder.toString:()Ljava/lang/String; 25: invokevirtual #9//Method java/io/PrintStream.println:(Ljava/lang/String;)V 28: return ldc 值(字符串)astore_0 将字符串存入变量invokespecial #5使用StringBuilder.append方法拼接字符串 本集资源word文档**** Hidden Message *****
希望继续更新! 从零开始的java逆 谢谢楼主分享 感谢分享感谢分享 感谢分享呀 [快捷回复]-学破解防逆向,知进攻懂防守! 十分感谢大佬
[快捷回复]-软件反汇编逆向分析,软件安全必不可少! 感谢大佬的分享