This repository contains all of the source code for UCSC's 2023 eCTF competition work. There is a GitLab CI script in this repository that is not functional here because we migrated this from our GitLab group to our GitHub organization.
We migrated our issues and merge requests from our GitLab. However, since the source branches on the merge requests were deleted, the merge requests were migrated as issues. The migrated merge request issues are also missing line numbers from the code review comments.
See the design document for an overview of our design.
See the contribution guidelines for an overview of our contribution and code review process.
- Change the working directory to the main project directory or your own copy of it.
- Run
./finding_friends.nuto grab a pair of boards for yourself. - (OPTIONAL) Run
tmuxorscreento start a terminal multiplexer. This will be important if you want to debug two boards at once. - Run
./run_podman.nu, specifying the project to test as an argument. For example, to test the car project, run./run_podman.nu ucsc-ectf-car. Valid projects areucsc-ectf-caranducsc-ectf-fob. This will build the firmware and run it on the board with GDB. The firmware execution will be paused at the first instruction. Use thecontinuecommand to continue execution. - (OPTIONAL) If for whatever reason you need to know what boards you have grabbed, you can run
./grabbed_boards.nu.
How to test the project with a manually setup development environment (DO NOT DO THIS UNLESS YOU KNOW WHAT YOU ARE DOING)
- Run
openocd -f board/ti_ek-tm4c123gxl.cfg. This will start up an OpenOCD server, which will be used with GDB later to debug the firmware. This command requires the board to be plugged in. - In a separate shell, run
cargo run --bin <project>.<project>should beucsc-ectf-carorucsc-ectf-fob. This will build the firmware and run it on the board with GDB. The firmware execution will be paused at the first instruction. Use thecontinuecommand to continue execution.