For WCTF it’s a good idea to use Pentoo. However on short notice, I could only find Kali for Rapsberry Pi for an easy on-the-go build. Some notes for myself which might be useful to whoever reads this.
Bluetooth Fox Hunting
First enable bluetooth:
systemctl enable bluetooth
systemctl enable hciuart
The first repo has adafruit-pitft.sh which is used to automatically configure the TFT display but since we’re on Kali some of the dependencies for the script are unvailable which is why we need the second repo.
In the py-spidev folder, run:
make
make install
Go into the Raspberry-Pi-Installer-Scripts folder and edit the adafruit-pitft.sh file. In this file, remove the part where it tries to install python-spidev and tslib. Then, run:
./adafruit-pitft.sh -u /root
This will ask you what screen you have and what configuration/rotation you prefer.
Afterwards, when you reboot you should see the console show up on the display. I prefer the 270 degrees (landscape) setting as this will place the buttons below the display.
I’m still unable to figure out the buttons on a Kali image. If anyone out there has any input, please let me know :)
To edit wifi, there are two ways:
wpa_supplicant -B-i wlan0 -c <(wpa_passphrase "MYSSID" 12345678)&& dhclient wlan0
# or
nmcli d wifi connect MYSSID password 12345678 iface wlan0
4. Get Sound
Get sound to work
In /boot/config.txt uncomment and edit the line:
For some use cases it is very easy to use a Google Sheet as the datasource for a website. For example, I’ve used a published Google spreadsheet as the backend data store for a competition leaderboard. This proves to be one of the simplest solutions as several moderators may want quick access to update the leaderboard and it can be updated easily from a mobile device.
It’s quite simple to publish the data from a Google Sheet as JSON:
Click the blue share button on the top right of the Sheet console to get a shareable link. For this step, have it set so that “Anyone with the link can view”. What this does is two things: it publishes the sheet to be made available publicly, and it also gives you the necessary SHEET ID for the following steps. Example:
This was relatively easier than yesterday’s puzzle.
I wasted some time trying to figure out if I could solve it with a zip and list processing but eventually just went for a brute force approach for the sake of submitting earlier.
I really like Python for these types of coding challenges. The data size is such that performance is negligible. It’s really easy to lay out your thoughts and reread the code without troubling yourself with complex syntax written for performance’s sake.
In this challenge, I use regex matching again to capture the minutes and IDs of the guards. Then I loop twice for each part of the challenge. I could have combined them into one or two loops, but again performance isn’t a priority over readability while attacking the puzzle.