1.签到题
扫描二维码得到
ZCTF{WELCOME_TO_20-209}
2.阿斯克的秘密
从前有个叫做阿斯克的人,他写了一句话,聪明的你能明白他写的是什么吗?
int a;
while(scanf("%d",&a)!=EOF)
printf("%c",(char)a);
将里面的数字输入到程序中即可;
3.送小可爱啦!!!
做出这一题的送小可爱一只
用UE打开——搜索“flag”
得到flag {wo_shi_xiao_ke_ai}
4。困在栅栏里的人是谁
下载图片后改扩展名为rar
打开压缩包发现有一个文件
文件里是 4c665f78647770685f21
这是16进制的。我猜答案肯定是字符串的所以转字符串;
根据题目和图片得到线索:栅栏(密码) & 凯撒(密码)
所以把16进制分栏,发现分栏后转不成字符串
那么先转字符串再分栏
分栏后把得到的字符串进行凯撒解密
代码如下:
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int main()
{
char c[]={"l_dp_fxwh!"} ;
int l=strlen(c);
for (int i = ; i < ; i++)
{
for (int j = ; j < l; j++)
{
if (c[j] + i > 'z'&&c[j] >= 'a'&&c[j] <= 'z')
{
printf("%c", c[j] + i - );
}
else if (c[j] >= 'a'&&c[j] <= 'z')
printf("%c", c[j] + i);
else
printf("%c", c[j]);
}
printf("\n\n");
}
}
一个一个试,把得到的字符串放程序里跑一遍;
(这个程序只能转小写的,所以里面有个大写字母要改成小写的,最后再改成大写)
发现在5的时候
有个I_am_cute!
别的都不是正常英文;
那就是这个了~
具体操作:
转字符串;
分栏1,2,3.... <-----
程序里跑一遍 |
发现不行,分栏++--------
发现可以,get答案
5.土豪聪
hc有很多txt,每个txt里面都有一笔十分宝贵的财富(也就是一个三位数而已),它们的财富值计算公式如下 value=filename^content 其中^表示乘方,比如5^4=5*5*5*5=625,可是钱多也很苦恼,hc连自己有多少财富值都不知道了, 聪明的你能帮hc算算他有多少财富值吗? 由于数据比较大,请将结果对9973求余
解压后发现有100个txt,每个txt里有一个三位数字;
把这些txt合并到一个里,(百度方法)用cmd命令;
把所有txt输入到111.txt(因为111.txt也在这个范围里,所以合并完这个111.txt也把自己复制了一次)
得到的是没换行的!没关系~
写个程序辣~
#include<iostream>
#include<stdio.h>
#include<fstream>
#include<string>
#define mod 9973
using namespace std;
int pow4(int a, int b) //快速幂,百度有模板
{
int r = , base = a;
while (b) {
if (b & )
{
r *= base; r = r%mod;
}
base *= base;
base %= mod;
b >>= ;
}
return r;
}
int main()
{
ifstream cin("111.txt"); //c++输入流重定向,从文件111.txt输入
string s;
cin >> s; //输入字符串;
int t, sum;
sum = ;
int num = ;
for (int i = ; i < s.size(); )
{
int a = ;
for (t = ; t < ; t++) //每三个是一个数
{
a = a * + s[i] - '';
i++;
}
num++;
sum += pow4(num, a);//快速幂
sum %= mod;
}
cout << sum << endl;
}
然后结果
6。移位密码
明文是小写的
把大括号里的东西换成小写,写个程序辣~
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<fstream>
using namespace std;
int main()
{
char c[] = { "qduqiogkuijyed" };
int l = strlen(c);
for (int i = ; i < ; i++)
{
for (int j = ; j <l; j++)
{
if (c[j] + i > 'z')
{
printf("%c", c[j] + i - );
}
else
printf("%c", c[j]+i);
}
printf("\n\n");
}
}
结果里有一个“aneasyquestion”
这就答案!
7.py交易
用py2.7运行一下发现是个死循环
在线反编译py
把除了循环的代码复制到py控制台里运行
得到
答案就是 pyisinteresting
8.简单逆向
用OD打开
自动步入,就看到了;
也可以直接搜索参考字符串“flag”
9.心急吃不了热豆腐
F12 直接找js文件;
发现里面有一个控制时间的变量,有个输出被注释掉了,把注释去掉,时间改小,再开html如图
10.不存在的
UE打开搜flag,嘻嘻。
安装apk??不存在的