BUUCTF_五月大联动-Misc-Holmes
压缩包解压——jpg图片【有跳舞的小人密码】
【原理 :
这种密码出自于福尔摩斯探案集。每一个跳舞的小人实际上对应的是英文二十六个字母中的一个,而小人手中的旗子则表明该字母是单词的最后一个字母,如果仅仅是一个单词而不是句子,或者是句子中最后的一个单词,则单词中最后一个字母不必举旗。
】
解出密码为YOUAREHOLMES
(不知道怎么用,按图片隐写基本流程走一遍)
【foremost(文件还原分离的神器)是一个控制台程序,用于根据页眉,页脚和内部数据结构恢复文件。Foremost可以处理图像文件,例如由dd,Safeback,Encase等生成的图像文件,或直接在驱动器上。页眉和页脚可以由配置文件指定,也可以使用命令行开关指定内置文件类型。这些内置类型查看给定文件格式的数据结构,从而实现更可靠,更快速的恢复。在数字取证中和CTF中常用来恢复、分离文件。它默认支持19种类型文件(jpg, gif, png, bmp, avi, exe, mpg, mp4, wav, riff, wmv, mov, pdf, ole, doc, zip, rar, html, cpp 等文件)的扫描识别恢复,还可以通过(通过配置它的配置文件foremost.conf)增加新的支持类型。
foremost在kali linux已经预装。】
分离出了一个带密码的RAR,用获得的密码解密
里面就是一个python代码,把flag做了一个简单的加密。
flag="flag{********************************}"
encflag=[]
for i in range(len(flag)):
encflag.append((ord(flag[i])+i)%128)
print(encflag)
'''
[102, 109, 99, 106, 127, 57, 60, 104, 60, 107, 61, 62, 65, 68, 115, 64, 67, 119, 66, 74, 73, 74, 119, 75, 74, 79, 79,
76, 78, 82, 78, 85, 83, 84, 82, 86, 92, 34]
'''
这里我们只需要简单地给他解密回去就行了:
s = [102, 109, 99, 106, 127, 57, 60, 104, 60, 107, 61, 62, 65, 68, 115, 64, 67, 119, 66, 74, 73, 74, 119, 75, 74, 79, 79,
76, 78, 82, 78, 85, 83, 84, 82, 86, 92, 34]
encflag=[]
for i in range(len(s)):
encflag.append((s[i]-i)%128)
print(bytes(encflag))
flag{46a4b3357e13f0755a42651250633038}
【rar格式是什么:
RAR是一种文件压缩与归档的私有格式,用于数据压缩与归档打包,简单的说就是将原有的文件数据经过压缩处理之后保存的文件格式后缀名,通常Windows用户比较常见的压缩软件WinRAR,通过使用WinRAR对文件数据进行压缩后默认保存的文件格式就是RAR格式。】