1. 程式人生 > 實用技巧 >攻防世界-sherlock

攻防世界-sherlock

1. 題目資訊

附件是網頁上的一篇文章,先複製到txt中儲存。

2. 分析

如下是文章開頭:

(additional editing by jose menendeZ)

thE adventuRes Of
sherlOck holmes

by

sir arthur coNan doylE

奇怪之處是有些位置不應該使用大寫字母,但是使用了大寫字母,推斷這些大寫字母是用來傳遞訊息的。將文章中的所有大寫字母提取出來,得到一串全部由ZERO與ONE組成的字串,ZERO替換為數字0,ONE替換為數字1,從而得到一個二進位制表示的數,再將此數轉換為字串即可。

3. 解題

Python程式碼如下:

from string import uppercase
from Crypto.Util.number import long_to_bytes

def solve():
    with open('paper','r') as f:
        data=f.read()
    cip=''
    for c in data:
        if c in uppercase:
            cip+=c
    cip=cip.replace('ZERO','0')
    cip=cip.replace('ONE','1')
    return long_to_bytes(long(cip,2))

if __name__=='__main__':
    print solve()

程式執行結果如下:

$ python solve.py
BITSCTF{h1d3_1n_pl41n_5173}