Skip to main content
The consent screen that appears at the start of the game is not cosmetic. Accepting it immediately starts a real reverse shell (ReverseShell.start()) and creates OS-level persistence artifacts (create_persistence(host)). Run this game only in an isolated lab environment or virtual machine.

Two modes at a glance

Local mode

Both the game and the listener run on the same machine. Ideal for solo learning and classroom demonstrations on a single PC.

Remote mode

The listener runs on one machine (instructor/attacker) and the game runs on another (student/target). Demonstrates real network communication over TCP on port 5050.

Step-by-step guide

Run both the listener and the game on the same machine.
1

Start the listener

Open a terminal and start the listener process. It binds to 0.0.0.0:5050 and waits for the game to connect.
python tools/listener.py
Leave this terminal open. You will see connection events and a command prompt appear after the game connects.
2

Launch the game

Open a second terminal and launch the game. In local mode, no --host flag is needed — the game uses the default host address.
python game/main_game.py
To run in a window instead of fullscreen:
python game/main_game.py --windowed
3

Read and accept the consent screen

The game opens with a consent screen that describes exactly what the cybersecurity features will do. Read it carefully.
  • Press Y to accept and continue.
  • Press N to cancel and exit without activating any features.
Once you accept:
  1. ReverseShell.start() is called immediately, establishing a TCP connection to the listener on port 5050.
  2. create_persistence(host) is called, writing an OS-appropriate persistence entry (Registry key, crontab line, or LaunchAgent plist).
The listener terminal displays a shell prompt when the connection is established.
4

Play through the levels

Navigate the game through all four levels:
LevelNameWhat happens
1System ScanDependency check runs; pygame-ce is verified
2Network NodeGame waits for shell.status == "CONNECTED" before progressing
3PersistenceCross-platform persistence artifact is shown and explained
4Final CleanupGame demonstrates artifact removal and exits cleanly
Level 2 does not advance until the reverse shell reports a CONNECTED status. If the listener terminal is not running, the game will stall at Level 2.
5

Run cleanup after playing

After finishing the session, remove all artifacts the game created:
python tools/cleanup_tool.py
The cleanup tool removes the persistence entry written during Level 3 and terminates any background processes started by the game.
Run cleanup even if you quit the game early. Persistence entries remain on the system until explicitly removed.

Command reference

# Start listener
python tools/listener.py

# Launch game (local, fullscreen)
python game/main_game.py

# Launch game (windowed)
python game/main_game.py --windowed

# Launch game with custom listener host
python game/main_game.py --host 192.168.1.100

# Run cleanup
python tools/cleanup_tool.py

What to do next

Gameplay guide

Learn the controls, objectives, and mechanics for each of the four levels.

Listener reference

Full command list for the listener CLI, including file download and heartbeat monitoring.

Cybersecurity concepts

Understand the real techniques the game demonstrates: reverse shells, persistence, and cleanup.

Safety guide

Set up an isolated lab environment before running the game in a classroom or workshop.

Build docs developers (and LLMs) love