WeChall - CGX#15 - Still Binary

Challenge

CGX#15: Still Binary 考察 7-bit ASCII。题目页面给出一个随机生成并绑定当前 session 的 bit stream,例如:

1
101000010100111001100100001010000011001001100010110000111010010100010110000101010000

每个 session 的 bit stream 不同,不能把示例解码结果当成固定答案。

Solution

Recon: 观察 bit stream 长度。示例 84 bit,尝试 8-bit 分组:84 % 8 = 4(不整除)。尝试 7-bit 分组:84 % 7 = 0 → 长度能被 7 整除。早期 ASCII 只定义 0-127,每个字符只需要 7 bit;第 8 bit 在一些通信场景中可作为 parity bit。因此本题不是 8-bit byte stream,而是连续的 7-bit ASCII stream。

解法步骤

  1. 从页面抓取当前 session 的 bit stream(curl 或浏览器查看源代码)
  2. 检查 len(bits) % 7 == 0
  3. 每 7 bit 一组,按普通二进制 MSB→LSB 转 ASCII
  4. 提交解码后的文本

Python:

1
2
3
4
bits = '101000010100111001100100001010000011001001100010110000111010010100010110000101010000'
assert len(bits) % 7 == 0
answer = ''.join(chr(int(bits[i:i+7], 2)) for i in range(0, len(bits), 7))
print(answer)

本地验证示例输出为:

1
PSLBAIECREBP

实际提交前要重新抓取当前 WeChall 页面并解码。

session-bound: 7-bit ASCII decode, answer varies per session