程序员小张不小心弄丢了加密文件用的秘钥,已知还好小张曾经编写了一个秘钥验证算法,聪明的你能帮小张找到秘钥吗? 注意:得到的 flag 请包上 flag{} 提交

这个是一个.class文件,需要用 jd-gui 这个东西打开

jd-gui github 地址: https://github.com/java-decompiler/jd-gui/releases

下载直接打开就好了。

image-20230525174439149

看这个for 循环【虽然我没学过java但是大概还是能知道这个是在干什么】

就是一个异或,很简单了

1.python

1
2
3
4
5
6
7
strs = [180, 136, 137, 147, 191, 137, 147, 191,
148, 136, 133, 191, 134, 140, 129, 135, 191, 65]

flag = ""
for i in range(0,len(strs)):
flag += chr(strs[i] - 64 ^ 0x20)
print(flag)

2.C

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
int main()
{
char KEY[] = {
180, 136, 137, 147, 191, 137, 147, 191, 148, 136,
133, 191, 134, 140, 129, 135, 191, 65 };
char a[20];
for (int i = 0; i < 18; ++i)
{
a[i] = KEY[i] - 64 ^ 0x20;
printf("%c", a[i]);
}
}

image-20230525180628761

flag{This_is_the_flag_!}