NJUST CTF 2018 Writeup

本文详细介绍了NJUST CTF 2018比赛中的多个挑战,包括Misc、Crypto、Reverse Engineering和Pwn等类别,涉及解码、密码学、图像分析和栈溢出等多个技术点,通过解密和分析,成功获取flag。
摘要由CSDN通过智能技术生成

NJUST CTF 2018 Writeup

Supernova, Nanjing University frostwing98,Trap,Arcadia

MISC1 签到

by Arcadia

一路调戏ai之后(误)可以得到一串base64编码的字符串,在线解码得到flag

MISC2 GIF

by frostwing98

下载到gif,发现是不断闪烁的黑/白画面,第一考虑是莫尔斯电码。首先http://tu.sioe.cn/gj/fenjie/分解之。

发现间隔并不均匀,也不按照1:3:5的比例。因此考虑01串的可能性。

后来题目有调整,也分好了每一帧。

我们发现,总共有91个图片,如果是ASCII,应该是8的倍数才对。

我们应该知道,ASCII的可打印字符,高位始终不会大于7,也就是0111.因此最高位其实可以省略。为此我们又发现,91=7×13,进一步验证了这个猜想。

因此将13×7个bit,每7个一组,最高位加上0,就能够构成flag的13个字符。


MISC3 code

by Arcadia

纯编程题,利用在线文字识别工具获取图片中的每个数字,存放在文件中,用算法模拟贪吃蛇移动路线,用辗转相除法计算最大公约数跟最小公倍数,最后得到flag。

C++代码:

#include <iostream>
#include <fstream> 
#include <string>
#include <cmath>using namespace std;
​
int gcd(int a,int b){ return a%b==0?b:gcd(b,a%b);}
​
int main()
{
 
    int x=0,y=0;
    int p,q;
    int sum=25*25-1,value=0,temp,ans;
    int state=1;
    ifstream input
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值