この大会は2022/4/2 7:00(JST)~2022/4/4 7:00(JST)に開催されました。
今回もチームで参戦。結果は248点で314チーム中221位でした。
自分で解けた問題をWriteupとして書いておきます。
quickmaths (misc)
$ nc 34.148.103.218 1228 You must solve 1000 of these math problems that are outputted in the following format {number} {operation} {number} to get the flag. Division is integer division using the // operator. The input is being checked through python input() function. Good luck! 46 * -28
四則演算の問題が1000問出題されるので、計算はevalに任せ答えていく。
#!/usr/bin/env python3 import socket def recvuntil(s, tail): data = b'' while True: if tail in data: return data.decode() data += s.recv(1) s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(('34.148.103.218', 1228)) data = recvuntil(s, b'luck! \n').rstrip() print(data) data = recvuntil(s, b'\n').rstrip() print(data) for i in range(1000): print('Round %d' % (i + 1)) data = recvuntil(s, b'\n').rstrip() print(data) ans = eval(data) print(ans) s.sendall(str(ans).encode() + b'\n') data = recvuntil(s, b'\n').rstrip() print(data) data = recvuntil(s, b'\n').rstrip() print(data)
実行結果は以下の通り。
You must solve 1000 of these math problems that are outputted in the following format {number} {operation} {number} to get the flag.
Division is integer division using the // operator.
The input is being checked through python input() function.
Good luck!
Round 1
29 + 98
127
:
Round 996
80 * 96
7680
Correct!
Round 997
6 * 85
510
Correct!
Round 998
8 * 11
88
Correct!
Round 999
51 // 56
0
Correct!
Round 1000
-57 // -15
3
Correct!
UMASS{s3v3naten1n3}
UMASS{s3v3naten1n3}