Repository for storing challenges, infrastructure notes, streaming configuration and other version controlled bits of information for the DEF CON CTF final LiveCTF event.
| # | Challenge Name | Competitors | Victor | 
|---|---|---|---|
| Round of 16: 1 | syscall-me-maybe | Shellphish vs PTB_WTL | Shellphish | 
| Round of 16: 2 | open-to-interpretation | StarBugs vs ./V /home/r/.bin/tw | StarBugs | 
| Round of 16: 3 | nopcoding | OSUSEC vs Maple Mallard Magistrates | Maple Mallard Magistrates | 
| Round of 16: 4 | nerd-sniped | the new organizers vs Balsn.217@TSJ.tw | the new organizers | 
| Round of 16: 5 | fairy-nuff | DiceGuesser vs Sauercloud | Sauercloud | 
| Round of 16: 6 | seek-and-destroy | 侍 vs perfect r✪✪✪t | perfect r✪✪✪t | 
| Round of 16: 7 | nvulns | r3kapig vs Water Paddler | r3kapig | 
| Round of 16: 8 | quick-cast | Katzebin vs Straw Hat | Straw Hat | 
| Quarter-Finals: 1 | story-time | StarBugs vs the new organizers | StarBugs | 
| Quarter-Finals: 2 | stacks | Shellphish vs Maple Mallard Magistrates | Maple Mallard Magistrates | 
| Quarter-Finals: 3 | pacman | r3kapig vs Sauercloud | [Went to sudden death] | 
| Quarter-Finals: 3.5 | over-easy | r3kapig vs Sauercloud | r3kapig | 
| Quarter-Finals: 4 | no-roplem | Straw Hat vs perfect r✪✪✪t | perfect r✪✪✪t | 
| Semi-Finals: 1 | aes-of-spades | Maple Mallard Magistrates vs StarBugs | StarBugs | 
| Semi-Finals: 2 | loopy-brain | r3kapig vs perfect r✪✪✪t | [Went to sudden death] | 
| Semi-Finals: 2.5 | fast-updater | r3kapig vs perfect r✪✪✪t | perfect r✪✪✪t | 
| Finals | f-in-the-stack | StarBugs vs perfect r✪✪✪t | StarBugs | 
If you're interested in playing on the exact challenge binaries used during each round, you can either build them yourself as described below, or look in the handouts/ subfolder of the release.
├── <challenge>
│   ├── challenge
│   │   ├── build.sh           # Commands for building challenge binary/binaries and handout
│   │   ├── config.toml        # Config file for flag submitter
│   │   ├── Dockerfile         # Dockerfile for building challenge image
│   │   ├── run.sh             # Command(s) to start the challenge
│   │   └── src                # This is where the source for the challenge will go
│   │       └── challenge.c
│   └── solution
│       ├── requirements.txt   # Solution script requirements
│       └── solve.py           # Challenge solve script
./livectf.py build <challenge>
Challenge management (creation/building/starting/stopping) is done through livectf.py, which is a light wrapper around docker. See ./livectf.py --help for usage.
./livectf.py create <challenge>will copy the template challenge to a new challenge directory.- Add your challenge source in 
<challenge>/challenge/src - Update the solution script in 
<challenge>/solution/solve.py 
(For challenges that include more than one source file + one binary):
- If needed, edit 
REQUIRED_PACKAGESin<challenge>/challenge/Dockerfileto include any extra build/runtime dependencies - If needed, change the build commands in 
<challenge>/challenge/build.sh - If needed, change 
HANDOUT_FILESin<challenge>/challenge/build.sh 
- Add any pip requirements to 
<challenge>/solution/requirements.txt - Put your solution script in 
<challenge>/solution/solve.py