ISCCmisc解题记录

1.misc: 奇特的信息

拿到一串密码,试了解码,解不出来。应该是字符频率统计,使用在线网站:http://quipqiup.com/

也可以用脚本来统计。

一键解出,最后面就是flag。IceCTF{always_listen_to_your_substitute_flags}

2.我的折扣是多少

打开这个压缩包,它有这三个文件。

zip文件需要密码,mp3文件应该也需要解密,看一下give.exe,闪过了一串代码

pass1{\u006b\u0072\u0077}

Unicode字符,解密为:pass1{krw}

但是这个密码还是打不开压缩包。把压缩包放进010editor。

分析一下后面的一串编码,base64.

两个pass正好拼接一下:krwgcc666,解密压缩包得到txt文件。

还是base64

解出来的这个也不是flag,哪应该是个密码了,开始音频解密。

使用这个工具就可以提取出来:MP3Stego。不会使用的话可以参考这篇博客

【音频隐写提取】MP3Stego下载、命令、使用方法-CSDN博客

接着输入命令,密码就是我们刚刚的那个:youfoundme?    之后就解出来一个文本

ISCC{LFXXK4TENFZWG33VNZ2DELRRGU======}

base32编码,解密一下。

就得到flag:ISCC{Yourdiscount2.15}

3.隐秘的信息

根据文本描述,这个base64编码,解密一下。

easy_to_find_the_flag这个就是我们压缩包的密码了。解压得到了一张图片。

把图片拖到010editor,没有发现什么。

接着试一下用StegSolve分析一下

发现了上面三行16进制文件比较特殊。

e92a68686f688aed ec8929064de62ded 4b2a87260888a92f 4b4fbffc01f8007f fffc7e3fe00fff00 71ffffffffffffff

转一下进制,经过分析,需要转成ASCII字符串

将二进制的前面三个1,头部的去掉,让0当首字节,就得到了。

flag:ISCC{DWodIH2o1ojYT90DEIzZ}

4.藏在星空中的诗

那个三个文件,打开这个文本文件,星星密码,没有见过。

用PS打开Stars.psd,发现图层1的不透明度为5%

改成100%,就拿到顺序:13524

在 13524 得到正确组合,将星星组合就是密码了,解压压缩包

☆✪٭☪✲☆🟀🟆★🟉🟌🟇✡☪🞱✡🟇⍟⍟✸🟆★٭🟀✦

试了一下,bandzip解不出来。但是用winrar解出来了。里面是一个excel表。

1:☆✪٭☪✲
2:✡🟇⍟⍟✸
3:🟔⍣☪🟐⍣
4:🟌🟔≛🟌✦
5:✦✫🌠✡🞱

FLAG=
ISCC{
ZDGYD
RZBRJ
JMTI}

然后按照这个顺序依次对照一下得到:FLAG=ISCC{ZDGYDRZBRJJMTI}

5.检查一下

拿到附件,解压只得到了一个图片

010查看之后没有什么东西,上kali。

直接binwalk分离一下。得到了四个文件。

这个文件里有一堆1,0组成的文件,长度为841,很容易联想到29*29是个二维码,二进制转二维码1对应黑,0对应白。

上脚本

from PIL import Image
MAX = 29
img = Image.new("RGB",(MAX, MAX))
str = "1111111000100100110000111111110000010011011110010101000001101110100111010011010010111011011101000000111011110101110110111010010111101110001011101100000101110111000010010000011111111010101010101010111111100000000011100100110100000000100101101110000101010101000001101000011101011011011100101000001110010010001111011110010001100000101101100111111001010110101101110000100011110100110001001100010010101110000111111111110010100110101001111110010110001100110111110111000110011110010001111001110000100011010000110100100000001011001010101101110100011011010011100011101001111011111000101001101101101100101010001111101000000000011101101101010001011011111110000011110000101011010100000101011110010101000101101011101001010011001011111001010111010110101111000001101001101110100101010000010100111011000001000011101000011001001011111110100100100000111100110"
i=0
for y in range (0,MAX):
    for x in range (0,MAX):
        if(str[i] == '1'):
            img.putpixel([x,y],(0, 0, 0))
        else:
            img.putpixel([x,y],(255,255,255))
        i = i+1
img.show()
img.save("flag.png")

扫描一下二维码就可以得到flag。

即ISCC{Png_Chunk_streams_ISCC}

  • 37
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
实现错题记录功能可以考虑使用文件操作来存储和读取错题信息。以下是一个简单的C语言实现: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_NUM 100 // 最大题目数量 struct Question { // 题目结构体 char content[100]; // 题目内容 char answer[100]; // 题目答案 int is_correct; // 是否正确 }; int main() { struct Question questions[MAX_NUM]; // 存储题目的数组 int num = 0; // 题目数量 char filename[] = "questions.txt"; // 存储题目的文件名 // 从文件中读取题目 FILE *fp; fp = fopen(filename, "r"); if (fp != NULL) { while (fgets(questions[num].content, 100, fp) != NULL) { fgets(questions[num].answer, 100, fp); strtok(questions[num].content, "\n"); // 去掉换行符 strtok(questions[num].answer, "\n"); questions[num].is_correct = 0; // 初始时都为错误 num++; } fclose(fp); } // 模拟答题过程 int i; for (i = 0; i < num; i++) { printf("%s\n", questions[i].content); char answer[100]; scanf("%s", answer); if (strcmp(answer, questions[i].answer) == 0) { // 答案正确 questions[i].is_correct = 1; } } // 将错题信息写入文件 fp = fopen(filename, "w"); if (fp != NULL) { for (i = 0; i < num; i++) { fprintf(fp, "%s\n%s\n%d\n", questions[i].content, questions[i].answer, questions[i].is_correct); } fclose(fp); } // 输出错题信息 printf("错题列表:\n"); for (i = 0; i < num; i++) { if (questions[i].is_correct == 0) { printf("%s\n", questions[i].content); } } return 0; } ``` 以上代码中,题目信息存储在一个题目结构体数组中,包括题目内容、答案和是否正确。程序运行时,先从文件中读取题目信息,并进行答题模拟,判断答案是否正确,然后将错题信息重新写入文件中。最后输出错题列表。 需要注意的是,题目信息存储在文件中时,可以按照一定的格式进行存储,例如每个题目以及对应的答案和是否正确,都占据三行,每行以换行符分隔。在读取文件时,使用fgets函数逐行读取信息,并去掉换行符。在写入文件时,使用fprintf函数按照一定的格式写入信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

继续学吧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值