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

看起来有两种解法,要么是根据第一个if的条件,判断要输入什么字符,然后安装这个apk,输入之后能看到flag;要么是根据第二个if做了什么,来写代码计算出flag。我选了第二个,感觉装apk麻烦。
本来想写python,但忽然想到为什么不用java,虽然我没用过java,但运行一下代码应该还行。
然后到菜鸟教程学了下,总结跑单个java文件的方法:
- 写个类,保存成java文件,文件名和类名一致(例如CTest.java)。类中包含main函数;
- 到命令行,先运行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}