1. 题目信息
-
压缩包:z:\\Desktop\\9da1ceedc0904352bf19a645844317b0.zip
-
解压后核心文件:
-
clemency.bin
-
flag.enc
-
2. 结论(Flag)
flag{I_love_cLEMENCy,so_I_want_to_share_it_with_you}
3. 解题思路
这题不是常规文本加密,而是 cLEMENCy 的 9-bit 数据格式。
flag.enc 里存的是按 8-bit 字节打包后的数据流,需要按 cLEMENCy 的规则还原为 9-bit nyte:
-
每次从字节流累积 bit;
-
每够 9 bit 取出一个 nyte;
-
再把可打印 nyte 按 ASCII 显示。
按这个方式解析后,开头直接得到完整 flag{…}。
4. 复现脚本(Python)
from pathlib import Path
b = Path("flag.enc").read_bytes()
out = []
bits = 0
cur = 0
for x in b:
cur = (cur << 8) | x
bits += 8
while bits >= 9:
bits -= 9
out.append((cur >> bits) & 0x1FF)
cur &= (1 << bits) – 1
text = "".join(chr(v) if 32 <= v < 127 or v in (10, 13, 9) else "." for v in out)
print(text[:200])
5. 本地验证结果
运行后输出前缀为:
flag{I_love_cLEMENCy,so_I_want_to_share_it_with_you}
首个 0 nyte 出现在索引 53,与 flag 长度(含换行)一致,说明解析正确。




