原题网址:PolarD&N
下载题目文件,解压完就有一个txt文件
然后根据给的一大行字符里的B、O、D、H我就联想到了进制,正好分别是二进制、八进制、十进制、十六进制。
然后就用代码把这些数都转成字符。
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
根据题目名字,我就去找了栅栏密码,本来以为能直接解出,结果出了问题,解密出来的不是flag
没办法,又去找度娘问了栅栏密码,发现普通的栅栏密码和M型的栅栏密码的解密时不一样的,原来问题在这里!
但我搜索了好久也没找到M型栅栏密码的解密网站,呜呜呜~
没办法,只能自己手动解密了。
. . . . {. . . . . . . a. . . . . . . 7. . . . . . . 9. . . . . . . 7
. . . g. 7. . . . . 4. 4. . . . . 1. b. . . . . 5. 5. . . . . 3. }
. . a. . . e. . . f. . . 9. . . c. . . 6. . . b. . . 2. . . e
. l. . . . . 7. d. . . . . b. 6. . . . . 0. 7. . . . . e. 5
f. . . . . . .3. . . . . . . a. . . . . . . a. . . . . . . e
然后连起来就成功了!