打开压缩包里面有三种文件:
hint文件内容:
哼,压缩包的密码?这是小Z童鞋的生日吧==
cipher文件内容:
Ygvdmq[lYate[elghqvakl}
howtoencrypt是一个加密的压缩文件,里面有一个classic0.c的文件
首先试着解密cipher文件的密文放入随波逐流工具解密看一下:
未发现明显特殊的明文,于是再去看hint文件给的提示,很明显压缩包的密码是生日,使用一个弱口令密码,我们直接爆破压缩包
爆破密码得到:
密钥是19990306
得到classic0.c,并打开查看
代码如下:
#include<stdio.h>
char flag[25] = ***
int main()
{
int i;
for(i=0;i<25;i++)
{
flag[i] -= 3;
flag[i] ^= 0x7;
printf("%c",flag[i]);
}
return 0;
}
分析题目代码,是要我们返回还原初始的明文,因此,题目中给的cipher的密文就可以用上了,直接写解密代码
代码如下:
cipher = 'Ygvdmq[lYate[elghqvakl}'
for i in range(0,24):
flag = ord(cipher[i]) ^ 0x7
flag += 3
print(chr(flag),end='')
# actf{my_naive_encrytion}
总结:此题很简单,考点就是压缩包爆破,然后通过看c代码反向还原flag明文
标签:文件,代码,flag,cipher,2020,ACTF,classic0,压缩包 From: https://www.cnblogs.com/Rebirth-Dream/p/16944562.html