diff --git a/master.py b/master.py new file mode 100644 index 0000000..20b2869 --- /dev/null +++ b/master.py @@ -0,0 +1,44 @@ +import socket +import sys + +def eprint(*args, **kwargs): + print(*args, file=sys.stderr, **kwargs) + +iplist = ('192.168.1.1','192.168.1.211','192.168.1.109','192.168.1.178','192.168.1.244','192.168.1.179','192.168.1.196','192.168.1.133','192.168.1.217') + + +class ColourArray: + def __init__(self, iplist=iplist): + self.sockets = {} + self.iplist = iplist + # Create a TCP/IP socket + for i in range(0, len(self.iplist)): + self.sockets[i] = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + server_address = (self.iplist[i], 10000) + eprint('connecting to {} port {}'.format(server_address[0], server_address[1])) + self.sockets[i].connect(server_address) + + def send(self, colorData): + if len(self.sockets) != len(colorData): + eprint("Error: invalid color data") + for i in range(0,len(self.iplist)): + self.sendTo(i,colorData[i]) + + def sendTo(self, socketIndex, data): + self.sockets[socketIndex].sendall(self.translateData(data)) + return + + def close(self): + for i in range(0, len(self.sockets)): + self.close(i) + return + + def closeTo(self, socketIndex): + self.sockets[socketIndex].close() + return + + def translateData(self, colorData): + outputString = "" + for i in colorData: + outputString += "{} {} {}\n".format(i[0],i[1],i[2]) + return (outputString + "\n").encode("UTF-8") diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..cf68c7d --- /dev/null +++ b/setup.py @@ -0,0 +1,10 @@ +from pwn import * +from master import ColourArray +s = {} +ips = ColourArray().iplist + +for i in range(0, len(ips)): + s[i] = ssh(host=ips[i],user='root',password='GNpvfm5%%') + s[i].shell('/bin/bash', tty=True) + s[i].run('echo 0 > /sys/class/leds/omnia-led:all/autonomous') + s[i].run_to_end('python3 /root/slave.py & disown') # this isn't working properly, we ended up starting the script manually on each device diff --git a/test.py b/test.py new file mode 100644 index 0000000..d82b4b0 --- /dev/null +++ b/test.py @@ -0,0 +1,39 @@ +from master import ColourArray +from time import sleep + +testColorData = [[[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255]], + [[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255]], + [[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255]], + [[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255]], + [[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255]], + [[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255]], + [[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255]], + [[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255]], + [[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255],[255,255,255]]] +colorful = [[[255,0,255],[0,255,255],[255,255,0],[0,0,255],[255,0,0],[0,255,0],[255,255,255],[255,0,255],[0,255,255],[255,255,0],[0,0,255],[255,0,0]], + [[255,0,255],[0,255,255],[255,255,0],[0,0,255],[255,0,0],[0,255,0],[255,255,255],[255,0,255],[0,255,255],[255,255,0],[0,0,255],[255,0,0]], + [[255,0,255],[0,255,255],[255,255,0],[0,0,255],[255,0,0],[0,255,0],[255,255,255],[255,0,255],[0,255,255],[255,255,0],[0,0,255],[255,0,0]], + [[255,0,255],[0,255,255],[255,255,0],[0,0,255],[255,0,0],[0,255,0],[255,255,255],[255,0,255],[0,255,255],[255,255,0],[0,0,255],[255,0,0]], + [[255,0,255],[0,255,255],[255,255,0],[0,0,255],[255,0,0],[0,255,0],[255,255,255],[255,0,255],[0,255,255],[255,255,0],[0,0,255],[255,0,0]], + [[255,0,255],[0,255,255],[255,255,0],[0,0,255],[255,0,0],[0,255,0],[255,255,255],[255,0,255],[0,255,255],[255,255,0],[0,0,255],[255,0,0]], + [[255,0,255],[0,255,255],[255,255,0],[0,0,255],[255,0,0],[0,255,0],[255,255,255],[255,0,255],[0,255,255],[255,255,0],[0,0,255],[255,0,0]], + [[255,0,255],[0,255,255],[255,255,0],[0,0,255],[255,0,0],[0,255,0],[255,255,255],[255,0,255],[0,255,255],[255,255,0],[0,0,255],[255,0,0]], + [[255,0,255],[0,255,255],[255,255,0],[0,0,255],[255,0,0],[0,255,0],[255,255,255],[255,0,255],[0,255,255],[255,255,0],[0,0,255],[255,0,0]]] +rainbow = [[[255,0,0],[255,127,0],[255,255,0],[127,255,0],[0,255,0],[0,255,127],[0,255,255],[0,127,255],[0,0,255],[255,0,255]], + [[255,0,0],[255,127,0],[255,255,0],[127,255,0],[0,255,0],[0,255,127],[0,255,255],[0,127,255],[0,0,255],[255,0,255]], + [[255,0,0],[255,127,0],[255,255,0],[127,255,0],[0,255,0],[0,255,127],[0,255,255],[0,127,255],[0,0,255],[255,0,255]], + [[255,0,0],[255,127,0],[255,255,0],[127,255,0],[0,255,0],[0,255,127],[0,255,255],[0,127,255],[0,0,255],[255,0,255]], + [[255,0,0],[255,127,0],[255,255,0],[127,255,0],[0,255,0],[0,255,127],[0,255,255],[0,127,255],[0,0,255],[255,0,255]], + [[255,0,0],[255,127,0],[255,255,0],[127,255,0],[0,255,0],[0,255,127],[0,255,255],[0,127,255],[0,0,255],[255,0,255]], + [[255,0,0],[255,127,0],[255,255,0],[127,255,0],[0,255,0],[0,255,127],[0,255,255],[0,127,255],[0,0,255],[255,0,255]], + [[255,0,0],[255,127,0],[255,255,0],[127,255,0],[0,255,0],[0,255,127],[0,255,255],[0,127,255],[0,0,255],[255,0,255]], + [[255,0,0],[255,127,0],[255,255,0],[127,255,0],[0,255,0],[0,255,127],[0,255,255],[0,127,255],[0,0,255],[255,0,255]]] + +c = ColourArray() +while True: + c.send(testColorData) + sleep(2) + c.send(colorful) + sleep(2) + c.send(rainbow) + sleep(2)