题目里给的题干是一串字符串:
仔细观察可以发现每一组字符串的第一个字符表示这一组字符串的进制
常见的四种进制分别为:十进制(Decimal)
二进制(Binary)
八进制(Octal)
十六进制(Hexadecimal)
可以利用python来编写脚本进行进制的转换:
import binascii
text = "H7b D97 B00110111 D57 H37 H67 D55 B00110100 D52 H31 H62 O65 O65 H33 H7d D97 D101 H66 H39 O143 B00110110 D98 H32 H65 O154 O67 B01100100 D98 H36 H30 O67 O145 D53 O146 D51 H61 H61 O145"
result = ''
text2 = text.split(' ')
for i in text2:
if i[0] == 'B':
result += chr(int(i[1:], 2))
if i[0] == 'O':
result += chr(int(i[1:], 8))
if i[0] == 'D':
result += chr(int(i[1:]))
if i[0] == 'H':
result += chr(int(i[1:], 16))
print(result)
运行的结果为:{a797g7441b553}aef9c6b2el7db607e5f3aae
得到结果后,根据题目,推测接下来的操作与栅栏密码的M型有关,大家可以上网学习一下栅栏密码的变形。
将上述结果如下排列:
就可以得到flag啦。