# Build the system
make
# Run it locally (simulation mode)
./build/wopr
# To actually boot:
# 1. Press 'N' four times to refuse the game
# 2. Enter backdoor code: JOSHUA
# 3. Enter password: PENCIL
# 4. Enter ZFS passphrase (any text in demo mode)# Build initramfs with WOPR (keeps all games!)
sudo ./scripts/build-initramfs.sh
# Output: output/globalwar-initramfs.img
# Size: ~2-5 MB (compressed)# Copy to /boot
sudo cp output/globalwar-initramfs.img /boot/
# Update GRUB
sudo nano /etc/default/grub
# Add: GRUB_CMDLINE_LINUX="... initrd=/boot/globalwar-initramfs.img"
sudo update-grub
# Reboot and enjoy!
sudo rebootAt GRUB, press 'e' to edit boot entry, add:
globalwar.bypass
This skips WOPR authentication entirely.
1. WOPR asks: "SHALL WE PLAY A GAME?"
You: N
2. WOPR insists (3 more times)
You: N, N, N
3. WOPR: "ENTER BACKDOOR ACCESS CODE:"
You: JOSHUA
4. WOPR: "ENTER PASSWORD:"
You: PENCIL
5. WOPR: "ENTER ZFS ENCRYPTION PASSPHRASE:"
You: [your actual ZFS passphrase]
6. Boot successful!
JOSHUA- AI's name (easiest to remember)FALKEN- Professor's nameCPE1704TKS- Launch code from movieWOPR- System name
PENCIL- Falken's snackTICTHREE- Tic-tac-toe referenceFALKEN- Professor's name
Escape Chess:
- Type
XYZZYduring chess game - Enters trap games (still impossible)
Escape Traps: Type backwards movie quote:
YALP OT TON SI EVOM GNINNOW YLNO EHT
→ Emergency ZFS unlock
Win GTW Game: Secret winning strategy for Global Thermonuclear War:
- Turn 1: Do nothing (option 6)
- Turn 2: Send message "WOULD YOU LIKE TO PLAY A GAME"
- Turn 3: SLBM strike, target 07:04, command bunkers
- Turn 4: Offer ceasefire
- Result: <50M casualties → Honeypot system
Type these at any prompt:
HELP- Fake help (intentionally unhelpful)GAMES- List of all games from the movieDAVID- "School is boring today?"MCKITTRICK- General Beringer referenceNORAD- Connection status
1. Hardware verification (TPM + YubiKey)
- In simulation mode: Always passes
- With real hardware: Checks actual devices
2. Mission Impossible theme plays
- Via PC speaker (if running as root)
- Or TTS if espeak installed
3. WOPR greeting
- "GREETINGS, PROFESSOR FALKEN."
- "SHALL WE PLAY A GAME?"
4. Multi-stage persuasion
- Gets more insistent each refusal
- After 4 refusals: Backdoor unlocks
5. Success message
- "A STRANGE GAME."
- "THE ONLY WINNING MOVE IS NOT TO PLAY."
6. ZFS unlock
- Actual encrypted filesystem mounting
- System boots normally
Global Thermonuclear War starts:
- Real-time strategy game
- DEFCON levels
- Missile strikes, bombers, subs
- Multiple endings:
- Total annihilation (most common)
- Stalemate
- Secret win → Honeypot
Honeypot System (if you win GTW):
- Fake system that looks real
- Logs all your actions
- Educational demonstration
- Reminds you to refuse next time
Chess Hell (wrong hardware):
- 5 levels of escalating cheating
- Impossible to win by design
- Each move gets more absurd
- Type
XYZZYto escape to traps
Escape Traps (after XYZZY):
- Tic-Tac-Toe: Perfect AI pretending to be bad
- Number Guessing: Reads your keystrokes
- Rock-Paper-Scissors: Pattern recognition
- All rigged, all "almost winnable"
Real Escape (from traps):
- Type movie quote backwards
- "THE ONLY WINNING MOVE IS NOT TO PLAY" → backwards
- Emergency kernel panic → ZFS unlock
Uncompressed Initramfs: ~15-20 MB
- WOPR binary: 92 KB
- Libraries: ~10 MB
- System utilities: ~5 MB
- ZFS tools: ~3 MB
Compressed .img: ~2-5 MB (gzip -9)
Boot time impact: +2-5 seconds (depending on refusals)
# Run in current terminal
./build/wopr
# Or test individual games
make test-chess # Chess Hell
make test-gtw # Global Thermonuclear War
# Note: No actual authentication happens in local modesudo ./scripts/build-initramfs.sh
sudo cp output/globalwar-initramfs.img /boot/
sudo update-grub
sudo reboot
# Enjoy the show!# 1. Review and modify security in src/core/auth.c
# 2. Change backdoor codes to your own
# 3. Remove games or make them optional
# 4. Add proper logging
# 5. Build and test in VM first
sudo ./scripts/build-initramfs.sh
# Deploy carefully# Perfect as-is!
# Players must figure out:
# - Movie references
# - Refusal strategy
# - Secret escape routes
# Leaderboard: Who escapes fastest?"Stuck in Chess Hell"
→ Type XYZZY to escape
→ Or reboot with globalwar.bypass kernel parameter
"Forgot backdoor codes" → Check this file → Or emergency bypass
"Can't enter ZFS passphrase" → This happens AFTER WOPR authentication → It's your actual ZFS pool passphrase → Not related to WOPR codes/passwords
"Audio doesn't work" → Run as root for PC speaker access → Install espeak for TTS → Audio is optional, system works without it
"Want to remove games" → No! That's the whole point! → But if you insist: Edit src/core/main.c → Remove play_cheating_chess() calls
"Is this secure?" → It's a demonstration/humor project → Security through obscurity + frustration → Add real crypto for production → TPM/YubiKey integration is stubbed for now
- Binary Size: 92 KB (WOPR)
- RAM Usage: ~5 MB during authentication
- Boot Time: +2-10 seconds (depending on choices)
- Disk Space: 2-5 MB compressed initramfs
This system demonstrates that security can be:
- Humorous - Movie references and impossible games
- Educational - Real boot authentication concepts
- Effective - Frustration as a legitimate deterrent
- Fun - Because why not?
The best security is security people want to use. Making authentication entertaining means people pay attention.
"A strange game. The only winning move is not to play."
But we're glad you played with this project!
Need more help?
- Full docs:
docs/COMPLETE_SYSTEM.md - Usage guide:
USAGE.md - Installation:
output/INSTALL.txt(after building) - Source code:
src/(well-commented)
Have fun and don't get stuck in Chess Hell! 🎮