#!/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