## 0x1 app1
  1.jadx工具打开反编译目标apk文件,找到onclick事件,看到关键代码
- public void onClick(View v) {
- try {
- String inputString = MainActivity.this.text.getText().toString();
- PackageInfo pinfo = MainActivity.this.getPackageManager().getPackageInfo(BuildConfig.APPLICATION_ID, 16384);
- String versionCode = pinfo.versionName;
- int versionName = pinfo.versionCode;
- for (int i = 0; i < inputString.length() && i < versionCode.length(); i++) {
- if (inputString.charAt(i) != (versionCode.charAt(i) ^ versionName)) {
- Toast.makeText(MainActivity.this, "再接再厉,加油~", 1).show();
- return;
- }
- }
- if (inputString.length() == versionCode.length()) {
- Toast.makeText(MainActivity.this, "恭喜开启闯关之门!", 1).show();
- return;
- }
- } catch (PackageManager.NameNotFoundException e) {
- }
- Toast.makeText(MainActivity.this, "年轻人不要耍小聪明噢", 1).show();
- }
复制代码
  2.看到关键的比较是这一句:
- inputString.charAt(i) != (versionCode.charAt(i) ^ versionName
复制代码
  3.再找到BuildConfig这个类,看到了VERSION_CODE和VERSION_NAME的值。
- package com.example.yaphetshan.tencentgreat;
- /* loaded from: classes.dex */
- public final class BuildConfig {
- public static final String APPLICATION_ID = "com.example.yaphetshan.tencentgreat";
- public static final String BUILD_TYPE = "debug";
- public static final boolean DEBUG = Boolean.parseBoolean("true");
- public static final String FLAVOR = "";
- public static final int VERSION_CODE = 15;
- public static final String VERSION_NAME = "X<cp[?phnb<;p?aj";
- }
复制代码
  4.转换成代码一跑,得到flag:W3l_T0_GAM3_0ne。
|