windowshell.py - brcon2025-hackathons - Bitreichcon 2025 Hackathons
 (HTM) git clone git://bitreich.org/brcon2025-hackathons git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/brcon2025-hackathons
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) Tags
       ---
       windowshell.py (1684B)
       ---
            1 #!/usr/bin/env micropython
            2 # coding=utf-8
            3 #
            4 # Microsoft Windows is Hell.
            5 #
            6 
            7 import network
            8 import socket
            9 
           10 wlan = network.WLAN()
           11 wlan.active(True)
           12 wlan.scan()
           13 wlan.connect('seeeder', 'seeedrooots')
           14 
           15 while not wlan.isconnected():
           16         print('.', end='')
           17 
           18 print(' connected')
           19 
           20 myip = wlan.ipconfig('addr4')[0]
           21 print(myip)
           22 
           23 bindport = 70
           24 maxconn = 100
           25 myport = 7000 + int(myip.split('.')[3])
           26 myserver = 'bitreich.org'
           27 
           28 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
           29 s.bind((myip, bindport))
           30 s.listen(maxconn)
           31 
           32 print("available at gopher://%s:%u/1/" % (myserver, myport))
           33 
           34 def gopher_info(conn, line):
           35         line = line.replace("\t", "    ")
           36         s = "i%s\t\t\t\t\r\n" % (line)
           37         conn.write(s.encode())
           38 
           39 def gopher_print(conn, text):
           40         for line in text.split("\n"):
           41                 gopher_info(conn, line)
           42 
           43 def gopher_link(conn, baseselector, newdir):
           44         newdir = newdir.replace("\t", "    ")
           45         s = "1%s\t%s/%s\t%s\t%s\r\n" % (newdir, baseselector, newdir, myserver, myport)
           46         conn.write(s.encode())
           47 
           48 endserial="66666666666666666"
           49 
           50 while True:
           51         conn, addr = s.accept()
           52         print('Connected with %s:%s' % (addr[0], addr[1]))
           53         selector = conn.readline().decode().rstrip()
           54         print('read %s from client\n' % selector)
           55         selectorpath = selector.split("/")
           56         serialnumber = "".join(selectorpath)
           57         if serialnumber == endserial:
           58                 gopher_print(conn, "You found the right serial number!\nHave a nice day!\n")
           59                 print("%s:%s found the exit from windows hell!" % (addr[0], addr[1]))
           60         else:
           61                 gopher_print(conn, "Welcome to Windows Hell!\nTry to find the Serial Number to exit one by one!\n Har Har Har Har ....\n")
           62                 for number in range(0, 9):
           63                         gopher_link(conn, selector, str(number))
           64         conn.write(".\r\n".encode())
           65         conn.close()