[BUUCTF]Reverse: 简单注册器


下载后,是一个apk文件。用jed打开,找到核心代码。

看起来有两种解法,要么是根据第一个if的条件,判断要输入什么字符,然后安装这个apk,输入之后能看到flag;要么是根据第二个if做了什么,来写代码计算出flag。我选了第二个,感觉装apk麻烦。

本来想写python,但忽然想到为什么不用java,虽然我没用过java,但运行一下代码应该还行。

然后到菜鸟教程学了下,总结跑单个java文件的方法:

  1. 写个类,保存成java文件,文件名和类名一致(例如CTest.java)。类中包含main函数;
  2. 到命令行,先运行javac CTest.java,然后运行java CTest即可。

Java代码如下:

public class CTest {
    public static void main(String[] args) {
        char[] x = "dd2940c04462b4dd7c450528835cca15".toCharArray();
        x[2] = (char)(x[2] + x[3] - 50);
        x[4] = (char)(x[2] + x[5] - 0x30);
        x[30] = (char)(x[0x1F] + x[9] - 0x30);
        x[14] = (char)(x[27] + x[28] - 97);
        int i;
        for(i = 0; i < 16; ++i) {
            char a = x[0x1F - i];
            x[0x1F - i] = x[i];
            x[i] = a;
        }
        System.out.println("flag{" + String.valueOf(x) + "}");
        return;
    }
}

运行结果:

PS E:\Personal\Desktop> javac CTest.java
PS E:\Personal\Desktop> java CTest
flag{59acc538825054c7de4b26440c0999dd}
,

发表回复

您的电子邮箱地址不会被公开。