この大会は2021/10/31 22:00(JST)~2021/11/1 22:00(JST)に開催されました。
今回もチームで参戦。結果は200点で183チーム中103位でした。
自分で解けた問題をWriteupとして書いておきます。
EnQuake (Reverse 200)
1文字ずつ暗号が対応しているので、uutctf{から始まることを前提に鍵を求め復号する。鍵は数値なので、0から順に試す。
$ cat flag.txt uutctf{ $ ./encryptor flag.txt 0 ttubugz
いきなり当たった。
$ cat flag.txt !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ $ ./encryptor flag.txt 0 ! #"%$'&)(+*-,/.1032547698;:=<?>A@CBEDGFIHKJMLONQPSRUTWVYX[Z]\_^a`cbedgfihkjmlonqpsrutwvyx{z}|
この結果、1とXORをとればよいことがわかる。
with open('flag.txt.encryptor', 'rb') as f: enc = f.read() flag = '' for c in enc: flag += chr(ord(c) ^ 1) print flag
uutctf{0perationAlienOverlord13}