打开文件是你的名字动漫的一张图片
用010打开文件,比较可疑的有三处
首先文件头是正确的,只是这边显示的Exif,之前没有特别注意jpg文件有这个头
其次是文件中包含两处flag信息,一个是类似隐藏的文件,一个疑似是第二段flag信息
猜测可能是隐藏文件中包含了另一段flag信息
放进kali的binwalk发现确实有隐藏文件
分离出来是一个虚拟机的文件,用记事本打开后会有一串类似flag的字符
但是提交失败了。不知道为啥,用记事本打开该文件后过会儿记事本就会卡顿
去看了一下wp,原来这文件还是要用010打开查看
在010里可以看到有编码信息 ,这个我之前是遇到过还是有点熟悉
把0ok全部复制过去就行了Brainfuck/Ook! Obfuscation/Encoding [splitbrain.org]
但是只有一半的flag
这时候就可以想到我们上面在图片里发现的那一段flag信息
但是上面那一段flag看样子也处于末尾位置的flag信息,那这两者能拼接吗
答案是不行
又查看了一位大佬的wp,学到新知识
.vmdk文件可以直接使用7z解压,下回不能一直使用winrar了
解压后可以得到两部分信息,分别代表着flag的第一部分和第二部分
第一部分打开后也是一段密文
依旧是一样的工具放进去后,选择Brainfuck to Text就可以获得第一部分的flag
但是奇怪的是,在windows下解压后没有第二部分的flag文件
打开后只是说flag第二部分不在这
但是直接在kali中运用命令解压就可以看见
打开第二个文件后就是跟上面一样的0ok密文,解压后就是第二段flag
那这么说的话,在010里打开的.vmdk文件估计也可以看到第一部分flag的编码信息,只是当时没注意
Brainfuck
之前在一个名叫神秘龙卷风的题目里看过,再来复习一下
Brainfuck是一种极小化的计算机语言,它是由Urban Müller在1993年创建的。由于fuck在英语中是脏话,这种语言有时被称为brainf*ck或brainf**k,甚至被简称为BF。
它只有8种关键字!
指针操作
> 指针右移一位指向下一个字节
< 指针左移一位指向上一个字节
由于指针两边不会无限长,所以会出现溢出空间的情况,编译器会报错。
字节操作
+ 当前指针指向的字节+1\
- 当前指针指向的字节-1
读写操作
. 以char的形式输出当前指针指向的字节(48会输出'0')
, 以ASCII的形式读入到当前指针指向的字节(读入'0'会存储48)
getch的回车10会变为换行13,打编译器时要注意了。
循环操作
[ 当当前指针指向的字节不是零时,会进行循环
] 当当前指针指向的字节非零时回到循环,否则退出
正确的代码中,所有的循环符号将会分组,两个循环只有分离和包含关系。上面所说的‘循环’就是分组后的循环
0ok
关于这个编码的信息,暂时没有找到,但是这个编码太过于显眼了,下回直接拿去解密就行了吧
Exif
其实通俗来讲,Exif文件格式与JPEG文件格式相同。Jpeg 规范允许在JPEG 文件中插入Exif信息,exif 包含了图像的基本元数据(metadata)和缩略图信息。因此,我们可以在jpeg 文件中查看元数据信息。
引用一下大佬
(7条消息) 【Metadata】二. EXIF详解_MYVision_ MY视界的博客-CSDN博客