46 lines
902 B
Python
46 lines
902 B
Python
|
import socket
|
||
|
from struct import pack, unpack
|
||
|
from time import time, sleep
|
||
|
|
||
|
def sock():
|
||
|
addr = ("localhost", 13370)
|
||
|
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||
|
s.connect(addr)
|
||
|
return s
|
||
|
|
||
|
def recv(s):
|
||
|
ptype, plen = unpack(">BI", s.recv(5))
|
||
|
data = s.recv(plen-6)
|
||
|
cs = s.recv(1)
|
||
|
print(f"I {ptype:X} {data}")
|
||
|
|
||
|
def pstr(s):
|
||
|
if type(s) == str:
|
||
|
s = s.encode()
|
||
|
return pack(">I", len(s)) + s
|
||
|
|
||
|
def snd(s, typ, dat):
|
||
|
p = pack(">BI", typ, len(dat)+6) + dat
|
||
|
csum = (-sum(p)) % 256
|
||
|
c = bytes([ csum ])
|
||
|
s.sendall(p + c)
|
||
|
|
||
|
def hello(s):
|
||
|
h = pstr("pestcontrol")
|
||
|
h += pack(">I", 1)
|
||
|
snd(s, 0x50, h)
|
||
|
|
||
|
def sivi(s):
|
||
|
h = pack(">II", 1337, 3)
|
||
|
h += pstr("green starred rat")
|
||
|
h += pack(">I", 765)
|
||
|
h += pstr("red footed elephant")
|
||
|
h += pack(">I", 6029)
|
||
|
h += pstr("black tailed unicorn")
|
||
|
h += pack(">I", 1234)
|
||
|
snd(s, 0x58, h)
|
||
|
|
||
|
s = sock()
|
||
|
hello(s)
|
||
|
recv(s)
|
||
|
sivi(s)
|