パスワードを入力するとフラグが得られる仕組みです．
```txtWelcome to Ricos Roughnecks. We use 1-time-pads to keep all our secrets safe from the Arachnids.Here in the mobile infantry, we also implement some stronger roughneck checks.Enter pad > ```
パスワードは以下の形式である必要があります．
1. 全部で38文字2. 先頭20文字は大文字3. 後半18文字は小文字4. 前半19文字は，次の文字が文字コードで1多くする(ABC...)5. 20文字目以降は，次の文字が文字コードで1少なくする(zyx...)
まず私は`ABCDEFGHIJKLMNOPQRSTzyxwvutsrqponmlkji`を入力しました．すると`[+] Welcome the mobile infantry, keep fighting.`とだけ出力され，フラグえられませんでした．そこでDiscordを見てみるとこのようなヒントが出ていました．
```pypad = input("Enter pad > ")result = otp(secret, pad)if (result == flag):    print("[+] The fight is over, here is your flag: %s" % result)else:    print("[+] Welcome the mobile infantry, keep fighting.")```
今回正しい`pad`となる文字は(len(upper_chers)-20+1)*(len(lower_chers)-18+1)=7*9=63しかありません．例えばこのようなものです．
```txtABCDEFGHIJKLMNOPQRSTzyxwvutsrqponmlkjiBCDEFGHIJKLMNOPQRSTUzyxwvutsrqponmlkjiCDEFGHIJKLMNOPQRSTUVzyxwvutsrqponmlkji...GHIJKLMNOPQRSTUVWXYZtsrqponmlkjihgfedcGHIJKLMNOPQRSTUVWXYZsrqponmlkjihgfedcbGHIJKLMNOPQRSTUVWXYZrqponmlkjihgfedcba```
よってこれらを全探索します．
```pyfrom pwn import *
up = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"low = "abcdefghijklmnopqrstuvwxyz"
for i in range(7):    for j in range(9):        up_sub = up[i : i + 20]        low_sub = "".join(list(reversed(low[j : j + 18])))        pad = up_sub + low_sub        io = remote("0.cloud.chals.io", 27602)
        for _ in range(100):            line = str(io.recvline())[2:-3]            print(line)            if (                line                == "Here in the mobile infantry, we also implement some stronger roughneck checks."            ):                break        line = str(io.recvline())        line = str(io.recv())[2:-1]        print(line)
        io.send(pad + "\n")        for _ in range(7):            line = str(io.recvline())[2:-3]            print(line)            if "flag" in line:                exit()            if "[+] Welcome" in line:                break```
最終的にフラグが出力されました．
`[+] The fight is over, here is your flag: shctf{Th3-On1Y-G00d-BUg-I$-A-deAd-BuG}`
`shctf{Th3-On1Y-G00d-BUg-I$-A-deAd-BuG}`