问题描述:
难度系数:四颗星
题目来源: DDCTF2018
题目描述:菜狗截获了一份报文如下c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2,生气地掀翻了桌子(╯°□°)╯︵ ┻━┻
题目场景: 暂无
题目附件: 暂无
题目分析:
嗯,这个题刚开始我也是没有思路,用ASCII在线转换器进行处理了一下,结果如下图。
后来,看了几位大神的WP,也就渐渐有了思路。要点如下:
- 每两个组成一个十六进制数。
- 每个十六进制数对应的十进制数都大于127。
- ASCII码只有0-127。
知识点:
十六进制的掌握
ASCII码的掌握
python写脚本能力
解题工具:
python脚本
解题步骤:
- 编写python脚本。将每一个十六进制数字,减去128,让其对应上ASCII码值。
m = "c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2"
n = ""
for i in range(0, len(m), 2):
hex = m[i:i+2]
n += chr(int(hex, 16) - 128) # int默认十进制,int(hex, 16)就是将hex由文本转换为16进制。
print(n)
- 运行脚本,得到相关信息。
- 加上flag的专属格式。提交,正确。