题目
分析
打开压缩包提示文件头损坏:
查看并分析十六进制文件。
标记块(MARK_HEAD)
52 61
:【0x6152-头部 CRC 校验值(固定)-2 字节】
72
:【0x72-块类型(固定)-1 字节】表示标记块
21 1A
:【0x1A21-阻止标志(固定)-2 字节】
07 00
:【0x0007-块大小(固定)-2 字节】标记块大小共 7 字节
压缩文件头(MAIN_HEAD)
CF 90
:【0x90CF-压缩文件头 CRC 校验值-2字节】
73
:【0x73-块类型(固定)-1 字节】表示压缩文件头
00 00
:【0x0000-阻止标志-2 字节】
0D 00
:【0x000D-块大小-2 字节】标记块大小共 13 字节
00 00 00 00 00 00
:【0x000000000000-保留字节-13-2-1-2-2=6 字节】
文件头 1(FILE_HEAD)
D5 56
:【0x56D5-文件头 CRC 校验值-2 字节】
74
:【0x74-块类型(固定)-1 字节】表示文件头
20 90
:【0x9020-组织标志-2 字节】
2D 00
:【0x002D-块大小-2 字节】文件大小共 45 字节(从文件 CRC 校验值计算至该文件块结束)
10 00 00 00
:【0x00000001-压缩文件大小-4 字节】
10 00 00 00
:【0x00000001-未压缩文件大小-4 字节】
02
:【0x02-用于存档的操作系统标志-1 字节】02 为 Windows 系统
C7 88 67 36
:【0x366788C7-文件 CRC 校验值-4 字节】
6D BB 4E 4B
:【0x4B4EBB6D-标准 MS DOS 格式的日期和时间-4 字节】
1D
:【0x1D-解压文件所需的 RAR 版本-1 字节】
30
:【0x30-压缩方法-1 字节】
08 00
:【0x0008-文件名大小-2 字节】该文件块的文件名 flag.txt 共占用 8 字节
20 00 00 00
:【0x00000020-文件属性-4 字节】txt 文件
66 6C 61 67 2E 74 78 74
:【flag.txt-具体文件名-8 字节】
00 B0 57 00 43 66 6C 61 67 20 69 73 20 6E 6F 74 20 68 65 72 65
:【flag.txt 文件的内容-45-4-4-1-1-2-4-8=21 字节】
文件头 2(FILE_HEAD)
A8 3C
:【0x3CA8-文件头 CRC 校验值-2 字节】
7A
:错误的块类型,应更改为 74
……
将 7A 更改为 74,将保存后的文件解压。得到两个文件:
flag.txt 文件的内容为:flag is not here
检查 secret 图片,发现文件头为 GIF 头:
在 Red plane 0 通道发现半截二维码雪饼:
更改文件后缀名为 gif,用 Photoshop 打开发现存在两个空白图层:
分别保存两个图层为 PNG 文件,查看两张图片的 Red plane 0 通道,发现另外半截二维码:
按通道保存两截二维码,拼接并补全:
扫描二维码得到 flag。
Flag
flag{yanji4n_bu_we1shi}
参考
RAR文件格式学习(了解)-debaowang-CSDN
RAR 格式-CTF Wiki
RAR文件格式分析-Sp4n9x's Blog