image-20250803000325430

1. 初步分析与信息获取

首先,我们拿到了一个名为 082.zip 的压缩文件。通过 7z 命令解压后,得到一个 082.bin 文件。

┌──(kali㉿kali)-[/mnt/hgfs/gx/x/tmp]
└─$ 7z x 082.zip -o82
...
Everything is Ok

使用 filels -al 查看文件信息,确认它是一个大小仅为 61 字节的二进制数据文件。

┌──(kali㉿kali)-[/mnt/…/gx/x/tmp/82]
└─$ file 082.bin
082.bin: data

┌──(kali㉿kali)-[/mnt/…/gx/x/tmp/82]
└─$ ls -al
-rwxr-xr-x 1 kali kali   61 2024年 4月19日 082.bin

直接 cat 文件,可以看到一堆乱码,但其中夹杂着一些可识别的“花式”字符,并且能勉强看出 HMV{...} 的结构,这与题目提示相符。

题目提示:
8Universal 16Threads of 32Friendship. Flag format: HMV{...}
8Universal 加密后的数据以 UTF-8 编码呈现

┌──(kali㉿kali)-[/mnt/…/gx/x/tmp/82]
└─$ cat 082.bin 
Ⓗ<\��6{�w𝕠5ؠ��5ݾ��_𝙤5�'�_5��𝓕}

使用 xxd -p 得到文件的完整十六进制表示,这是我们后续分析的基础:

e292bd3cd85cddff367b0000000001d477f09d95a035d8a0ded835ddbeff
d501000000005ff09d99a435d827de005f35ff00000001d413f09d93957d
00

2. 核心突破:识别混合编码

这是解开谜题最关键的一步。我们将注意力集中在文件开头的 HMV 部分。通过在 CyberChef 等工具中反复尝试,我们发现它是由多种编码方式混合而成的:

这个发现证实了题目提示 "8Universal 16Threads of 32Friendship" 的含义:Flag 中的字符被替换为了各种“花式”Unicode 字符,并且这些字符自身又分别使用了 UTF-8、UTF-16 甚至 UTF-32 进行了编码,最后拼接在一起。

3. 逐个击破:解码 Flag 内容

我们识别出 7b{ 的 ASCII 码,7d00 代表 }。接下来,我们对花括号中间的核心数据进行逐个解码:

00000000 01d477f09d95a035d8a0ded835ddbeff d50100000000 5ff09d99a435d827de00 5f35ff00000001d413f09d9395

通过细致地手动分段和解码,我们拼凑出 Flag 的各个部分:

  1. 0001d477 -> UTF-32BE -> 𝑷 (对应 'p')
  2. f09d95a0 -> UTF-8 -> 𝕠 (对应 'o')
  3. 35d8a0de -> UTF-32LE -> w
  4. d835ddbe -> UTF-16BE -> 𝗲 (对应 'e')
  5. ffd501 -> UTF-32LE -> 𝗿 (对应 'r')
  6. 5f -> ASCII -> _
  7. f09d99a4 -> UTF-8 -> 𝙤 (对应 'o')
  8. f09d9395 -> UTF-8 -> 𝓕 (对应 'f')
  9. 5f -> ASCII -> _
  10. 35ff -> UTF-16LE -> (对应 'U')
  11. 0001d413-> UTF-32BE -> 𝐓 (对应 't')
  12. f09d9395 -> UTF-8 -> 𝓕 (对应 'f')

4. 结论

最终的 Flag 是:

HMV{power_of_Utf}