RowdyHacks XII
RowdyHacks is UTSA's annual student hackathon. Its Capture the Flag spanned eight categories, from web and cryptography to binary exploitation and ICS/OT.
1st of 62 teams, all 28 challenges solved, 5,825 points
- Host
- The University of Texas at San Antonio (UTSA)
- When
- October 3-4, 2026
- Format
- In person, San Antonio, TX
- Result
- 1st of 62 teams, all 28 challenges solved, 5,825 points
- Team
- Difference (Derek Wei, Ahaan Wanvari)
A team result first and foremost. Within it, Derek was the team's top scorer, with 3,575 of the team's 5,825 points.
Scoreboardall 28 challenges
Challenge statistics published by the RowdyHacks XII organizers after the event closed. Two checks hold: solve counts sum to 474, matching the organizers' stated correct-submission total, and the 27 challenges on the board at the freeze sum to 5,825, matching the team's recorded score.
- teams competing
- 62
- challenges on the board
- 28
- correct submissions
- 474
- of 2,396 submissions were correct
- 19.8%
2 challenges were solved by a single team out of 62: Back to Nothing and Locked File. Team Difference solved both.
Where the field finished
Scores across all 62 teams as the public scoreboard stood at the freeze, in 211-point brackets. The median team finished on 645, and 9 teams finished on a single 25-point solve. The bar on the far right is Team Difference, 850 points clear of second place.
points scored
How rare each solve was
| Challenge | Category | Points | Solved by | Share of 62 teams |
|---|---|---|---|---|
| Back to Nothing | forensics | 600 | 1 | 1 of 62 teams |
| Locked File | crypto | 250 | 1 | 1 of 62 teams |
| Find me !! | misc | 100 | 3 | 3 of 62 teams |
| Do You Know What Will Rock You? | misc | 300 | 4 | 4 of 62 teams |
| beam me in | pwn | 250 | 5 | 5 of 62 teams |
| Dutiful Maid Troubles | network | 200 | 6 | 6 of 62 teams |
| Buffer Overrun | pwn | 300 | 7 | 7 of 62 teams |
| Marisa Stole the Precious Ports! | network | 150 | 7 | 7 of 62 teams |
| Passing Through | osint | 300 | 8 | 8 of 62 teams |
| A Small Toolkit | crypto | 250 | 10 | 10 of 62 teams |
| Case Files | web | 250 | 10 | 10 of 62 teams |
| Remilia's Wine Problem | network | 150 | 10 | 10 of 62 teams |
| exact change | rev | 250 | 11 | 11 of 62 teams |
| Sleepy Gate Guardian | network | 100 | 11 | 11 of 62 teams |
| Works on My Machine | rev | 350 | 12 | 12 of 62 teams |
| sonion | forensics | 250 | 13 | 13 of 62 teams |
| Cirno's Perfect Guest Access | network | 100 | 17 | 17 of 62 teams |
| teto territory | misc | 250 | 22 | 22 of 62 teams |
| Pieces of the Puzzle | forensics | 250 | 23 | 23 of 62 teams |
| Military OSINT | osint | 150 | 24 | 24 of 62 teams |
| The Gatekeeper | rev | 200 | 24 | 24 of 62 teams |
| read receipts | crypto | 200 | 25 | 25 of 62 teams |
| world is mine | web | 150 | 25 | 25 of 62 teams |
| Hidden in Plain Sight | forensics | 200 | 28 | 28 of 62 teams |
| WRONG TURN | forensics | 200 | 35 | 35 of 62 teams |
| Goomba | forensics | 100 | 42 | 42 of 62 teams |
| Gensokyo Industry Standards | network | 50 | 45 | 45 of 62 teams |
| YOUR FIRST CTF!!! | misc | 25 | 45 | 45 of 62 teams |
The 28 challenges are worth 5,925points in total. The team's recorded score is5,825, the 27 solved before the board froze. The remaining 100 belong to Find me !!, a meet-the-author challenge credited afterwards.
Writeups28 total
Forensics · 6 writeups
Back to Nothing
600 ptsThe 600-point forensics flagship: a 7-Zip reassembled from element symbols, a custom byte transform undone, a glyph panel read, and a spectrogram flag.
Pieces of the Puzzle
250 ptsA 250-point network-forensics challenge: reassembling a split archive from six pieces scattered across HTTP responses and Base64-encoded DNS TXT records.
sonion
250 ptsA 250-point forensics-into-reversing challenge: carving a ZIP from a PNG, then inverting a 46-byte checker's per-byte transform to recover the accepted code.
Hidden in Plain Sight
200 ptsA 200-point layered-stego challenge: an EXIF hint led to a ZIP appended after a JPEG end marker, then a steghide payload behind a passphrase.
WRONG TURN
200 ptsA 200-point network-forensics challenge: carving an HTTP-transferred PDF out of a packet capture to read the briefing that hid the flag among decoy traffic.
Goomba
100 ptsA 100-point forensics challenge where a file posing as a JPEG is really a PNG, hiding the flag in the least-significant bits of its RGB channels.
ICS/OT & network · 6 writeups
Dutiful Maid Troubles
200 ptsA 200-point ICS/OT challenge: toggling one Modbus coil enabled a holding-register output whose ASCII bytes spelled the flag, then restoring the coil.
A 150-point ICS/OT recon challenge: use nmap and Modbus port knowledge to pick the real OpenPLC from three decoys, then read its holding registers.
Remilia's Wine Problem
150 ptsA 150-point ICS/OT challenge: read-only Modbus holding-register reads over the OT tunnel surfaced the overpressured tank value needed for the flag.
Cirno's Perfect Guest Access
100 ptsA 100-point ICS/OT challenge: an exposed SCADA-LTS HMI view returned the flag through a guest-accessible component that required no login.
Sleepy Gate Guardian
100 ptsA 100-point ICS/OT challenge: a SCADA-LTS dashboard left on the default administrator account exposed the flag in a data point's history.
A 50-point ICS/OT warm-up: recovering the well-known TCP port Modbus uses, confirmed against the local Nmap service registry rather than from memory.
Miscellaneous · 4 writeups
A 300-point challenge chaining a hidden page, an SSH password found in RockYou, and a ZIP password also from RockYou to reach the flag.
teto territory
250 ptsA 250-point multi-stage challenge: a PNG with an appended WAV whose stereo-difference DTMF tones spelled the password to a final encrypted ZIP.
Find me !!
100 ptsThe one challenge on the board with no technical component: find and speak to the challenge author during the hackathon. Credited after the freeze.
YOUR FIRST CTF!!!
25 ptsA 25-point workshop warm-up: reading a check-in page's source to decode a Base64 flag from its JavaScript, past a decoy HTML comment.
Cryptography · 3 writeups
A Small Toolkit
250 ptsA 250-point crypto challenge: a Vigenère letter revealed a key, a four-digit PIN fell to a tiny hash search, and its SHA-256 digest XOR-decrypted the flag.
Locked File
250 ptsA 250-point crypto challenge solved by GPU-cracking an AES-encrypted 7-Zip. Documents the known approach; the password and flag were not preserved.
read receipts
200 ptsA 200-point crypto challenge exploiting AES-CTR keystream reuse: a reset counter let one known plaintext recover the keystream and decrypt another.
Reverse engineering · 3 writeups
Works on My Machine
350 ptsA 350-point reversing challenge with a two-stage handshake: static analysis recovered the first transmission, a connection-specific transform the second.
exact change
250 ptsA 250-point reversing challenge: reconstructing a JAR's hidden service command by reproducing its coin-reconciliation algorithm to derive the service code.
The Gatekeeper
200 ptsA 200-point reversing challenge: inverting a per-byte transform in a stripped x86-64 ELF to reconstruct the 24-byte passphrase it accepts.
Binary exploitation (pwn) · 2 writeups
Buffer Overrun
300 ptsA 300-point pwn challenge: a textbook ret2win stack overflow in a 32-bit binary with no canary and no PIE, returning into a win() that spawns a root shell.
beam me in
250 ptsA 250-point pwn challenge against a vulnerable Erlang/OTP SSH daemon allowing pre-authentication command execution, reading the flag through the tunnel.
OSINT · 2 writeups
Passing Through
300 ptsA 300-point OSINT investigation: geolocating a lift bridge in New Orleans and pulling eight facts, down to a federal case number, from public records.
Military OSINT
150 ptsA 150-point OSINT challenge: identifying a fighter wing from its aircraft markings and resolving its home station to the decimal coordinates the checker wanted.
Web · 2 writeups
Case Files
250 ptsA 250-point web challenge and textbook BOLA: a skipped case ID exposed a classified case and its evidence through predictable, unauthorized API paths.
world is mine
150 ptsA 150-point web challenge: forum hints pointed at SQL injection in a login field, and a comment-terminator payload authenticated as staff.