require 'pwn'
def repeated_block?(bytes)
blocks = bytes.each_slice(16).to_a
blocks != blocks.uniq
end
s = Sock.new('crypto.chal.csaw.io', 5001)
s.recvline # greeting
i = 1
loop do
puts "Round #{i}"
s.recvline
s.sendline('A' * 32)
s.recvline
ciphertext = line[/: *([0-9a-f]+)/] && $1
s.recvline # ECB or CBC?
if repeated_block?(ciphertext.chars)
s.sendline('ECB')
STDERR.write(0)
else
s.sendline('CBC')
STDERR.write(1)
end
i += 1
end