#!/usr/bin/env python
# coding=utf-8
import time
import socket
import string
agentid = ""
message = ""
flag = ""
for i in range(45):
agentid += "1"
def returnmsg(data):
"""发送与接收"""
s.send(data)
time.sleep(0.3)
msg = s.recv(1024)
return msg
while True:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("116.85.48.103", 5002))
print returnmsg("2acba569d223cf7d6e48dee88378288a\n") # 发送题目的mission key
cipertext = returnmsg(agentid + "\n") # 得到密文
print cipertext
for i in string.lowercase + string.digits + string.uppercase + "{}":
message = "Connection for mission: {}, your mission's flag is: {}".format(agentid, flag + i)
info = returnmsg(message + "\n")
if info.split("\n")[0] in cipertext: # 如果尝试加密的内容和第一次密文相同,则记下i
print info
flag += i
print "find key code: " + i
break
print message
s.shutdown(2)
s.close()
if agentid == "": # 每一次猜到keycode后,agentid都要减一位
break
else:
agentid = agentid[:-1]
if i == "}":
break