rp2040 based CTF challenge for DePaul University Daemoncon 2024 and 2025
- C 67.6%
- Python 30%
- Makefile 0.8%
- Linker Script 0.8%
- CMake 0.5%
- Other 0.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| src | ||
| .gitignore | ||
| CMakeLists.txt | ||
| flags.txt | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE | ||
| pico_extras_import_optional.cmake | ||
| pico_sdk_import.cmake | ||
| README.md | ||
rp2040-ctf
Embedded hardware CTF challenge daemoncon 2024
Began building this in November 2023.
Very unsure how it'll turn out! Let me know what you think on matrix!
Linux Usage:
# minicom -b 115200 -D /dev/ttyACM0
More detailed usage for all operating systems:
- Install a terminal with emoji support (I recommend this one known as kitty) or xmobaterm for Windows.
- If you don't want to use kitty, use putty, xmobaterm or WSL instead (any linux distro should have minicom installed). On MacOS you should already have a terminal that supports it. You'll need a serial monitor though, (install minicom, its probably the easiest).
- Once you have a terminal with a serial monitor, you can connect to the Pi Pico! Depending on your OS, you can do the following to find where its located:
- Device Manager on Windows will tell you the serial port it's on
ls /dev/tty*on linux and MacOS should list the possible devices (usually its like/dev/ttyUSB0or/dev/ttyACM0)
- Once you find the port, you should be able to connect to the Pico using it:
# minicom -b 115200 -D /dev/ttyACM0- [insert screenshots for other apps]
- Find those flags!
Development Setup
(This was primarily taken from Drewol/rp2040-gamecon, so feel free to check that source out!)
Build instructions
Insturctions based on Ubuntu 20.04.1 LTS tested under WSL2
- Install CMake (at least version 3.13), and GCC cross compiler
sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi
- Download the pico-sdk and set the
PICO_SDK_PATHenvironment variable. Also set the variable in your.bashrcfor future use.
git clone https://github.com/raspberrypi/pico-sdk
cd pico-sdk
git submodule update --init
export PICO_SDK_PATH=$PWD
cd ..
- Clone and build this repository
git clone https://github.com/641i130/rp2040-ctf
cd rp2040-ctf
mkdir build
cd build
cmake ..
make
- Upload the
ctf.uf2that was created in your build directory.
If you're using linux and you want to mount the pico easily, try these commands out:
sudo mkdir /mnt/picosudo mount (sudo fdisk -l | grep 'W95 FAT16' | awk '{print $1}') /mnt/picosudo cp ctf.uf2 /mnt/pico
Useful tools I used: https://www.cescaper.com/ https://www.patorjk.com/software/taag/#p=display&f=Crazy&t=