Last Day!

I played with the wifi camera last night, but I couldn't get my phone to connect to it when my laptop was in monitor mode. That was perplexing enough to hold up anything I was trying to do. I might try again tonight with something that isn't a mac, verifying I can intercept phone traffic is step 1 in this project.

This is my last day in the 'office' this year, apparently I am too late to wish folk a good new year as I am the only person in today.


Reading: Nemesis Games, All Tomorrows Parties

UDP Panel ✓

Okay, one CCC project done. The panel now accepts data via UDP , if you send enough it will reset the whole panel, to something. It doesn't do what I want, but what it does right now is much much cooler than what I planned to do.

If I get time during congress I will do something more I guess. Here is all of the code so you can make your own and play a long at home.

import machine, neopixel, time, socket

LEDCOUNT = 64
skull = [
0,0,1,1,1,1,1,0,
0,1,1,1,1,1,1,1,
1,0,0,1,0,0,1,1,
1,0,0,1,0,0,1,1,
0,1,1,0,1,1,1,0,
0,0,0,1,1,1,0,0,
0,0,0,1,0,1,0,0,
0,0,0,0,0,0,0,0,]

def chunks(l, n):
    n = max(1, n)
    return [l[i:i + n] for i in range(0, len(l), n)]

if __name__ == "__main__":
    addr = "0.0.0.0"
    port = 6969

    pin = machine.Pin(14, machine.Pin.OUT)
    np = neopixel.NeoPixel(pin, LEDCOUNT)

    print("receiving from {} {}".format(addr, port))

    sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True)

    sock.settimeout(1.0)
    sock.bind((addr,port))

    while True:
        try: 
            pkt,addr = sock.recvfrom(1024) #blocks
            print("addr {}".format(addr))
        except OSError: 
            pkt = b""

        colours = chunks(pkt, 3)
        if len(pkt) == 3*LEDCOUNT:
            for x in range(LEDCOUNT):
                np[x] = colour
        else:
            colour = (0,0,0)
            if not len(colours) % 3:
                colour = uos.urandom(3)
            else:
                colour = colours[0]

            for x in range(len(skull)):
                if skull[x]:
                    np[x] = colour
        np.write()
        time.sleep(0.16)

SlowTV is going slowly(lol), the project is all set up. I need to figure out how to get the pi to output at the teeny resolution it supports.


Reading: Nemesis Games, All Tomorrows Parties

Weekend off

This weekend has to be considered a weekend off. I played with a wifi camera yesterday, but I only made a dent in the project. Today was a final(ish) run at Christmas shopping, in all I did almost nothing all weekend. It feels great.

Next week will be a hectic run to get work done, and projects ready for congress.


It is Sunday, so that makes seven days of writing .

Reading: Nemesis Games, All Tomorrows Parties

Attacking Wifi with Wireshark

For a thing , I want to dump the wlan traffic between an Android app and a wifi camera. It isn't hard to grab network traffic from Android, if you have a rooted device you can just run tcpdump . tcpdump on Android is annoying, you have to manage the pcap files and it isn't clear what you are capturing.

Thankfully, wireshark can be fed WPA and WEP keys , making snooping as a third party an absolute breeze. The key options are in the protocol preferences for IEEE 802.11 , they look something like this:

wep:a1:b2:c3:d4:e5
wpa-pwd:MyPassword:MySSID
wpa-psk:0102030405060708091011...6061626364

The protocol preferences dialog doesn't seem to do any validation of the keys, instead I had to restart wireshark to get the super unhelpful error message.

The wireshark guide mentions the wireless toolbar, but this wasn't available on my platform and I didn't need it. With just the key, WEP traffic can be decrypted. WPA traffic requires that you capture an EAPOL handshake first. The easiest way to do that is observe the device keying, for testing I just had my phone join the network.


Reading: Nemesis Games, All Tomorrows Parties

Puffins

Today was a very slow start, staying in bed for an extra hour really didn't help me out at all today. Normally the end of the year is quite calm, all of the deadlines seem to have concentrated themselves at the start of next year. Time to work on interesting, but not pressing problems probably won't exist next year, as much as possible has to happen in the next week.

That does make preparation for congress very interesting.


Reading: Nemesis Games, All Tomorrow's Parties