题目描述

菜狗截获了一份报文如下c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2,生气地掀翻了桌子(╯°□°)╯︵ ┻━┻

Solution

观察该字符串是 a-z 和 数字 的组合,这可能是一个十六进制字符串。每两个十六进制数代表一个 byte,两个两个分一组,我们尝试写一个 Python 程序转换:

  1. hex_str = "c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2"
  2. num = ""
  3. for i in range(0, len(hex_str), 2):
  4. tmp_str = hex_str[i:i+2]
  5. # ASCII 只用了 7 位二进制,因此要减去 2^7 即128
  6. num += chr(int(tmp_str, 16) - 128)
  7. print(num)

输出结果如下:

Hi, FreshDog! The flag is: hjzcydjzbjdcjkzkcugisdchjyjsbdfr

把格式拼接一下,Flag 提交成功。