HNHuangJingYU 发表于 2021-9-28 20:29

《攻防世界》MOBILE--app1

1. 将app1.apk拉进JEB分析发现题目很简单,就是java层的分析,简单的分析下,就是我们输入的字符串长度要等于versionName的长度、然后就是字符串逐个字符要等于versionName.charAt(v0) ^ v4)、那么就好办了。this.btn.setOnClickListener(new View$OnClickListener() {
            public void onClick(View arg10) {
                try {
                  String v1 = MainActivity.this.text.getText().toString();
                  PackageInfo v2 = MainActivity.this.getPackageManager().getPackageInfo("com.example.yaphetshan.tencentgreat", 0x4000);
                  String v3 = v2.versionName;
                  int v4 = v2.versionCode;
                  int v0 = 0;
                  while(v0 < v1.length()) {
                        if(v0 >= v3.length()) {
                            break;
                        }

                        if(v1.charAt(v0) != (v3.charAt(v0) ^ v4)) {
                            Toast.makeText(MainActivity.this, "再接再厉,加油~", 1).show();
                            return;
                        }
                        else {
                            ++v0;
                            continue;
                        }
                  }

                  if(v1.length() != v3.length()) {
                        goto label_39;
                  }

                  Toast.makeText(MainActivity.this, "恭喜开启闯关之门!", 1).show();
                  return;
                }
                catch(PackageManager$NameNotFoundException v5) {
                }

            label_39:
                Toast.makeText(MainActivity.this, "年轻人不要耍小聪明噢", 1).show();
            }
      });2.将versionName.charAt(v0) ^ v4 的值输出,因为输出的值都是int值,所以需要进行对ASCLL码转换@Test
public void demo2() {
    String versionName = "X<cP[?PHNB<P?aj";
    int versionCode = 15;
    for (int i = 0; i < versionName.length(); i++) {
      System.out.print((char) (versionName.charAt(i) ^ versionCode));
    }
    //输出:W3l_T0_GAM3_0ne
}

州哥在江湖 发表于 2021-9-30 12:49

感谢楼主分享,学习学习。
页: [1]
查看完整版本: 《攻防世界》MOBILE--app1