d626

🐧

Intro to Programming Languages

15 / 253 10925 / 35335


Commands

Time of First Successful Submission: 2026-06-05 17:21:40

Command Arguments

Time of First Successful Submission: 2026-06-05 17:22:33

Command History

Time of First Successful Submission: 2026-06-05 17:23:07

The Root Path

Time of First Successful Submission: 2026-06-05 17:43:29

Absolute Paths

Time of First Successful Submission: 2026-06-05 17:44:14

Changing position

Time of First Successful Submission: 2026-06-05 17:44:50

Changing to an Absolute Path

Time of First Successful Submission: 2026-06-05 17:46:23

Relative Paths

Time of First Successful Submission: 2026-06-05 17:47:20

Cat

Time of First Successful Submission: 2026-06-05 17:57:15

Ls

Time of First Successful Submission: 2026-06-05 18:05:00

Ls All

Time of First Successful Submission: 2026-06-05 18:16:05

Find

Time of First Successful Submission: 2026-06-05 18:25:41

Piping Echo

Time of First Successful Submission: 2026-06-06 09:24:10

Piping Stdout

Time of First Successful Submission: 2026-06-06 09:25:04

Piping Stdin

Time of First Successful Submission: 2026-06-06 09:30:03


Start Here

12 / 12 2808 / 48085


Using the Terminal

Time of First Successful Submission: 2026-06-04 17:14:35

Using the VSCode Workspace

Time of First Successful Submission: 2026-06-04 17:16:33

Using the GUI Desktop

Time of First Successful Submission: 2026-06-04 17:18:03

Pasting into the Desktop

Time of First Successful Submission: 2026-06-04 17:20:09

Restarting Challenges

Time of First Successful Submission: 2026-06-04 17:29:47

Challenge Programs

Time of First Successful Submission: 2026-06-04 17:35:19

The Flag File

Time of First Successful Submission: 2026-06-04 17:37:06

Using Privileged Mode

Time of First Successful Submission: 2026-06-04 17:41:21

Persistent Home Directories - One

Time of First Successful Submission: 2026-06-04 17:43:01

Persistent Home Directories - Two

Time of First Successful Submission: 2026-06-04 17:43:39


Linux Luminarium

128 / 128 3388 / 35819


Intro to Commands

Time of First Successful Submission: 2026-06-05 17:21:40

Intro to Arguments

Time of First Successful Submission: 2026-06-05 17:22:33

Command History

Time of First Successful Submission: 2026-06-05 17:23:07

The Root

Time of First Successful Submission: 2026-06-05 17:43:29

Program and absolute paths

Time of First Successful Submission: 2026-06-05 17:44:14

Position thy self

Time of First Successful Submission: 2026-06-05 17:44:50

Position elsewhere

Time of First Successful Submission: 2026-06-05 17:46:23

implicit relative paths, from /

Time of First Successful Submission: 2026-06-05 17:47:20

explicit relative paths, from /

Time of First Successful Submission: 2026-06-05 17:47:56

implicit relative path

Time of First Successful Submission: 2026-06-05 17:48:27

home sweet home

Time of First Successful Submission: 2026-06-05 17:50:11

cat: not the pet, but the command!

Time of First Successful Submission: 2026-06-05 17:57:15

catting absolute paths

Time of First Successful Submission: 2026-06-05 17:57:50

more catting practice

Time of First Successful Submission: 2026-06-05 17:58:23

grepping for a needle in a haystack

Time of First Successful Submission: 2026-06-05 17:59:18

comparing files

Time of First Successful Submission: 2026-06-05 18:01:10

listing files

Time of First Successful Submission: 2026-06-05 18:05:00

touching files

Time of First Successful Submission: 2026-06-05 18:05:40

removing files

Time of First Successful Submission: 2026-06-05 18:13:30

moving files

Time of First Successful Submission: 2026-06-05 18:14:20

copying files

Time of First Successful Submission: 2026-06-05 18:14:57

hidden files

Time of First Successful Submission: 2026-06-05 18:16:05

An Epic Filesystem Quest

Time of First Successful Submission: 2026-06-05 18:21:40

making directories

Time of First Successful Submission: 2026-06-05 18:22:25

finding files

Time of First Successful Submission: 2026-06-05 18:25:41

linking files

Time of First Successful Submission: 2026-06-05 18:36:53

Learning From Documentation

Time of First Successful Submission: 2026-06-06 08:21:22

Learning Complex Usage

Time of First Successful Submission: 2026-06-06 08:23:19

Reading Manuals

Time of First Successful Submission: 2026-06-06 08:25:26

Searching Manuals

Time of First Successful Submission: 2026-06-06 08:26:37

Searching For Manuals

Time of First Successful Submission: 2026-06-06 08:32:57

Helpful Programs

Time of First Successful Submission: 2026-06-06 08:34:50

Help for Builtins

Time of First Successful Submission: 2026-06-06 08:36:27

Matching with *

Time of First Successful Submission: 2026-06-06 08:53:21

Matching with ?

Time of First Successful Submission: 2026-06-06 08:54:17

Matching with []

Time of First Successful Submission: 2026-06-06 08:56:45

Matching paths with []

Time of First Successful Submission: 2026-06-06 08:58:39

Multiple globs

Time of First Successful Submission: 2026-06-06 08:59:46

Mixing globs

Time of First Successful Submission: 2026-06-06 09:05:34

Exclusionary globbing

Time of First Successful Submission: 2026-06-06 09:09:15

Tab completion

Time of First Successful Submission: 2026-06-06 09:10:02

Multiple options for tab completion

Time of First Successful Submission: 2026-06-06 09:14:31

Tab completion on commands

Time of First Successful Submission: 2026-06-06 09:15:23

Redirecting output

Time of First Successful Submission: 2026-06-06 09:24:10

Redirecting more output

Time of First Successful Submission: 2026-06-06 09:25:04

Appending output

Time of First Successful Submission: 2026-06-06 09:26:35

Redirecting errors

Time of First Successful Submission: 2026-06-06 09:28:26

Redirecting input

Time of First Successful Submission: 2026-06-06 09:30:03

Grepping stored results

Time of First Successful Submission: 2026-06-06 09:31:31

Grepping live output

Time of First Successful Submission: 2026-06-06 09:32:24

Grepping errors

Time of First Successful Submission: 2026-06-06 09:33:37

Filtering with grep -v

Time of First Successful Submission: 2026-06-06 09:34:31

Filtering with sed

Time of First Successful Submission: 2026-06-06 09:41:37

Duplicating piped data with tee

Time of First Successful Submission: 2026-06-06 09:46:20

Process substitution for input

Time of First Successful Submission: 2026-06-06 09:49:00

Writing to multiple programs

Time of First Successful Submission: 2026-06-06 09:53:24

Split-piping stderr and stdout

Time of First Successful Submission: 2026-06-06 09:57:01

Named pipes

Time of First Successful Submission: 2026-06-06 10:03:56

Printing Variables

Time of First Successful Submission: 2026-06-06 15:49:15

Setting Variables

Time of First Successful Submission: 2026-06-06 15:50:10

Multi-word Variables

Time of First Successful Submission: 2026-06-06 15:52:02

Exporting Variables

Time of First Successful Submission: 2026-06-06 15:55:33

Printing Exported Variables

Time of First Successful Submission: 2026-06-06 15:57:12

Storing Command Output

Time of First Successful Submission: 2026-06-06 16:00:00

Reading Input

Time of First Successful Submission: 2026-06-06 16:02:11

Reading Files

Time of First Successful Submission: 2026-06-06 16:03:34

Translating characters

Time of First Successful Submission: 2026-06-06 16:11:32

Deleting characters

Time of First Successful Submission: 2026-06-06 16:12:07

Deleting newlines

Time of First Successful Submission: 2026-06-06 16:13:31

Extracting the first lines with head

Time of First Successful Submission: 2026-06-06 16:14:39

Extracting specific sections of text

Time of First Successful Submission: 2026-06-06 16:20:58

Sorting data

Time of First Successful Submission: 2026-06-06 16:24:32

Listing Processes

Time of First Successful Submission: 2026-06-06 16:34:35

Killing Processes

Time of First Successful Submission: 2026-06-06 16:37:11

Interrupting Processes

Time of First Successful Submission: 2026-06-06 16:39:18

Killing Misbehaving Processes

Time of First Successful Submission: 2026-06-06 16:42:02

Suspending Processes

Time of First Successful Submission: 2026-06-06 16:44:20

Resuming Processes

Time of First Successful Submission: 2026-06-06 16:45:38

Backgrounding Processes

Time of First Successful Submission: 2026-06-06 16:48:46

Foregrounding Processes

Time of First Successful Submission: 2026-06-06 16:51:23

Starting Backgrounded Processes

Time of First Successful Submission: 2026-06-06 16:52:28

Process Exit Codes

Time of First Successful Submission: 2026-06-06 16:56:19

Becoming root with su

Time of First Successful Submission: 2026-06-06 17:04:22

Other users with su

Time of First Successful Submission: 2026-06-06 17:06:03

Cracking passwords

Time of First Successful Submission: 2026-06-06 17:15:41

Using sudo

Time of First Successful Submission: 2026-06-06 17:19:00

Changing File Ownership

Time of First Successful Submission: 2026-06-06 18:34:12

Groups and Files

Time of First Successful Submission: 2026-06-06 18:37:36

Fun With Groups Names

Time of First Successful Submission: 2026-06-06 18:38:52

Changing Permissions

Time of First Successful Submission: 2026-06-07 14:28:54

Executable Files

Time of First Successful Submission: 2026-06-07 14:32:57

Permission Tweaking Practice

Time of First Successful Submission: 2026-06-07 14:41:06

Permissions Setting Practice

Time of First Successful Submission: 2026-06-07 14:50:30

The SUID Bit

Time of First Successful Submission: 2026-06-07 15:04:28

Chaining with Semicolons

Time of First Successful Submission: 2026-06-07 15:10:16

Building on Success

Time of First Successful Submission: 2026-06-07 15:12:50

Handling Failure

Time of First Successful Submission: 2026-06-07 15:16:28

Your First Shell Script

Time of First Successful Submission: 2026-06-07 15:27:25

Redirecting Script Output

Time of First Successful Submission: 2026-06-07 15:37:38

Executable Shell Scripts

Time of First Successful Submission: 2026-06-07 15:45:48

Understanding Shebangs

Time of First Successful Submission: 2026-06-07 15:52:45

Scripting with Arguments

Time of First Successful Submission: 2026-06-07 15:55:40

Scripting with Conditionals

Time of First Successful Submission: 2026-06-07 15:57:41

Scripting with Default Cases

Time of First Successful Submission: 2026-06-07 15:59:01

Scripting with Multiple Conditions

Time of First Successful Submission: 2026-06-07 16:01:59

Reading Shell Scripts

Time of First Successful Submission: 2026-06-07 16:03:16

Launching Screen

Time of First Successful Submission: 2026-06-07 16:06:41

Detaching and Attaching

Time of First Successful Submission: 2026-06-07 16:08:32

Finding Sessions

Time of First Successful Submission: 2026-06-07 16:13:10

Switching Windows

Time of First Successful Submission: 2026-06-07 16:14:31

Detaching and Attaching (tmux)

Time of First Successful Submission: 2026-06-07 16:23:57

Switching Windows (tmux)

Time of First Successful Submission: 2026-06-07 16:25:26

The PATH Variable

Time of First Successful Submission: 2026-06-07 16:29:31

Setting PATH

Time of First Successful Submission: 2026-06-07 16:31:02

Finding Commands

Time of First Successful Submission: 2026-06-07 16:33:16

Adding Commands

Time of First Successful Submission: 2026-06-07 16:36:34

Hijacking Commands

Time of First Successful Submission: 2026-06-07 16:40:14

Bashrc Backdoor

Time of First Successful Submission: 2026-06-07 16:45:50

Sniffing Input

Time of First Successful Submission: 2026-06-07 16:51:00

Overshared Directories

Time of First Successful Submission: 2026-06-07 16:56:11

Tricky Linking

Time of First Successful Submission: 2026-06-07 17:14:18

Sniffing Process Arguments

Time of First Successful Submission: 2026-06-07 17:16:17

Snooping on Configurations

Time of First Successful Submission: 2026-06-07 17:19:27

The Fork Bomb

Time of First Successful Submission: 2026-06-07 17:30:00

Disk-Space Doomsday

Time of First Successful Submission: 2026-06-07 17:51:19

rm -rf /

Time of First Successful Submission: 2026-06-07 17:53:52

Life after rm -rf /

Time of First Successful Submission: 2026-06-07 17:58:39

Finding meaning after rm -rf /

Time of First Successful Submission: 2026-06-07 18:02:48


Computing 101

110 / 128 33 / 20566


Your First Register

Time of First Successful Submission: 2026-06-07 18:47:33

Your First Syscall

Time of First Successful Submission: 2026-06-07 18:53:35

Exit Codes

Time of First Successful Submission: 2026-06-07 18:55:35

Building Executables

Time of First Successful Submission: 2026-06-07 19:04:11

Moving Between Registers

Time of First Successful Submission: 2026-06-07 19:16:17

Loading From Memory

Time of First Successful Submission: 2026-06-07 19:40:41

More Loading Practice

Time of First Successful Submission: 2026-06-07 19:42:24

Dereferencing Pointers

Time of First Successful Submission: 2026-06-07 19:48:02

Dereferencing Yourself

Time of First Successful Submission: 2026-06-07 19:49:43

Dereferencing with Offsets

Time of First Successful Submission: 2026-06-07 19:53:01

Stored Addresses

Time of First Successful Submission: 2026-06-07 19:54:50

Double Dereference

Time of First Successful Submission: 2026-06-07 19:56:32

The Stack

Time of First Successful Submission: 2026-06-07 20:01:41

Stack Offsets

Time of First Successful Submission: 2026-06-07 20:04:28

Program Arguments on the Stack

Time of First Successful Submission: 2026-06-07 20:06:51

Popping From the Stack

Time of First Successful Submission: 2026-06-07 20:09:56

Negative Numbers

Time of First Successful Submission: 2026-06-08 16:58:40

Negative Numbers (16-bit)

Time of First Successful Submission: 2026-06-08 17:02:03

Negative Numbers (32-bit)

Time of First Successful Submission: 2026-06-08 17:06:18

Encoding Negatives

Time of First Successful Submission: 2026-06-08 17:12:25

Binary and Hex Encoding

Time of First Successful Submission: 2026-06-08 17:16:18

More Hex

Time of First Successful Submission: 2026-06-08 17:17:46

Decoding Hex

Time of First Successful Submission: 2026-06-08 17:19:24

Mixed Conversions

Time of First Successful Submission: 2026-06-08 17:26:24

Disassembling Programs

Time of First Successful Submission: 2026-06-08 17:33:18

Tracing Syscalls

Time of First Successful Submission: 2026-06-08 17:36:52

Starting GDB

Time of First Successful Submission: 2026-06-08 17:37:53

Quitting GDB

Time of First Successful Submission: 2026-06-08 17:38:39

Starting Programs in GDB

Time of First Successful Submission: 2026-06-08 17:40:08

Disassembling in GDB

Time of First Successful Submission: 2026-06-08 17:41:21

Stepping Through Instructions

Time of First Successful Submission: 2026-06-08 17:42:38

Reading Register Values

Time of First Successful Submission: 2026-06-08 17:44:15

Popping Stack Values

Time of First Successful Submission: 2026-06-08 17:45:26

Examining Memory

Time of First Successful Submission: 2026-06-08 17:46:53

Examining Stack Pointers

Time of First Successful Submission: 2026-06-08 17:49:05

Cooperative Debugging

Time of First Successful Submission: 2026-06-08 17:52:02

Running with Arguments

Time of First Successful Submission: 2026-06-08 17:52:56

Writing Output

Time of First Successful Submission: 2026-06-09 15:52:18

Chaining Syscalls

Time of First Successful Submission: 2026-06-09 15:56:46

Writing Strings

Time of First Successful Submission: 2026-06-09 15:58:13

Reading Data

Time of First Successful Submission: 2026-06-09 16:15:33

Opening Files

Time of First Successful Submission: 2026-06-09 16:27:31

Hardcoding the Filename

Time of First Successful Submission: 2026-06-09 16:35:25

RIP-Relative Strings

Time of First Successful Submission: 2026-06-13 11:59:46

Comparing Values

Time of First Successful Submission: 2026-06-09 17:12:05

Comparing Characters

Time of First Successful Submission: 2026-06-09 17:52:00

Conditional Control Flow

Time of First Successful Submission: 2026-06-09 18:27:36

Comparing Strings

Time of First Successful Submission: 2026-06-09 18:35:03

Reverse the Password

Time of First Successful Submission: 2026-06-09 18:44:00

Conditionals Without Conditionals

Time of First Successful Submission: 2026-06-09 19:16:21

Looping

Time of First Successful Submission: 2026-06-09 19:27:18

Writing From a Shared Library

Time of First Successful Submission: 2026-06-09 19:53:30

Returning a Value

Time of First Successful Submission: 2026-06-10 16:25:27

Calling Through a Pointer

Time of First Successful Submission: 2026-06-10 16:28:21

Calling Through a Pointer with an Argument

Time of First Successful Submission: 2026-06-10 16:31:31

Saving Caller-Saved Registers

Time of First Successful Submission: 2026-06-10 17:17:36

Saving Callee-Saved Registers

Time of First Successful Submission: 2026-06-10 17:48:16

Sign Extension

Time of First Successful Submission: 2026-06-13 13:02:11

Little-Endian Bytes

Time of First Successful Submission: 2026-06-13 13:12:50

Qword by Qword

Time of First Successful Submission: 2026-06-13 13:25:59

Dword by Dword

Time of First Successful Submission: 2026-06-13 13:36:57

Word by Word

Time of First Successful Submission: 2026-06-13 13:57:55

Byte by Byte

Time of First Successful Submission: 2026-06-13 14:05:51

Cracking a Struct

Time of First Successful Submission: 2026-06-13 14:17:48

Scrambled Struct

Time of First Successful Submission: 2026-06-13 14:30:48

Reverse the Calculation

Time of First Successful Submission: 2026-06-13 15:01:30

Reverse the Reverse

Time of First Successful Submission: 2026-06-13 15:07:37

Dealing with Bitwise Operations

Time of First Successful Submission: 2026-06-13 15:12:51

Even or Odd

Time of First Successful Submission: 2026-06-13 15:19:24

Masking Bits

Time of First Successful Submission: 2026-06-13 15:26:57

Lowercase a String

Time of First Successful Submission: 2026-06-13 15:30:52

Uppercase a String

Time of First Successful Submission: 2026-06-13 15:38:44

Swap Case

Time of First Successful Submission: 2026-06-13 15:48:00

Shifting Left

Time of First Successful Submission: 2026-06-13 15:53:24

Shifting Right

Time of First Successful Submission: 2026-06-13 16:02:52

Loops on Data

Time of First Successful Submission: 2026-06-13 16:23:13

Reaching Into the Caller's Frame

Time of First Successful Submission: 2026-06-13 17:53:13

Using Your Own Frame

Time of First Successful Submission: 2026-06-13 19:04:14

Environment Variables on the Stack

Time of First Successful Submission: 2026-06-13 20:05:55

Aligning the Stack Through the Environment

Time of First Successful Submission: 2026-06-13 20:11:54

Aligning the Stack Through GDB

Time of First Successful Submission: 2026-06-13 20:16:09

Aligning the Stack Through GDB, Generalized

Time of First Successful Submission: 2026-06-13 20:25:05

A Single Digit

Time of First Successful Submission: 2026-06-14 09:48:32

Two Digits

Time of First Successful Submission: 2026-06-14 10:12:04

String to Integer

Time of First Successful Submission: 2026-06-14 10:48:40

Negative Numbers

Time of First Successful Submission: 2026-06-14 10:55:32

Where the Number Ends

Time of First Successful Submission: 2026-06-14 11:19:06

A Whole Program

Time of First Successful Submission: 2026-06-14 11:31:47

A Single Digit, Back to Text

Time of First Successful Submission: 2026-06-14 11:52:45

Divide and Remainder

Time of First Successful Submission: 2026-06-14 12:45:01

Drop the Leading Zero

Time of First Successful Submission: 2026-06-14 13:03:55

Integer to String

Time of First Successful Submission: 2026-06-14 14:07:23

Negative Numbers, Back to Text

Time of First Successful Submission: 2026-06-14 14:29:02

Sum Them All

Time of First Successful Submission: 2026-06-14 16:54:04

Addition

Time of First Successful Submission: 2026-06-15 19:47:36

Subtraction

Time of First Successful Submission: 2026-06-15 20:01:33

Multiplication

Time of First Successful Submission: 2026-06-15 20:03:14

Bitwise Operators

Time of First Successful Submission: 2026-06-15 20:07:31

Unary Operators

Time of First Successful Submission: 2026-06-15 20:16:13

Literal Output

Time of First Successful Submission: 2026-06-17 16:50:06

Newline Escapes

Time of First Successful Submission: 2026-06-17 17:21:49

Escaped Syntax

Time of First Successful Submission: 2026-06-17 17:34:59

Debugging Programs

Time of First Successful Submission: 2026-06-10 18:44:41

Inspecting Registers

Time of First Successful Submission: 2026-06-10 18:53:05

Examining Memory

Time of First Successful Submission: 2026-06-10 19:47:03

Setting Breakpoints

Time of First Successful Submission: 2026-06-10 20:07:18

GDB Scripting

Time of First Successful Submission: 2026-06-11 16:48:10

Modifying Data

Time of First Successful Submission: 2026-06-11 20:35:55

Modifying Execution

Time of First Successful Submission: 2026-06-13 11:26:37

Broken Functions

Time of First Successful Submission: 2026-06-13 11:46:04


DSU Cyber Camps

12 / 104 3105 / 48380


Using the Terminal

Time of First Successful Submission: 2026-06-04 17:14:35

Using the VSCode Workspace

Time of First Successful Submission: 2026-06-04 17:16:33

Using the GUI Desktop

Time of First Successful Submission: 2026-06-04 17:18:03

Pasting into the Desktop

Time of First Successful Submission: 2026-06-04 17:20:09

Connecting over SSH

Time of First Successful Submission: 2026-06-04 17:28:04

Restarting Challenges

Time of First Successful Submission: 2026-06-04 17:29:47

Getting Help

Time of First Successful Submission: 2026-06-04 17:33:10

Challenge Programs

Time of First Successful Submission: 2026-06-04 17:35:19

The Flag File

Time of First Successful Submission: 2026-06-04 17:37:06

Using Privileged Mode

Time of First Successful Submission: 2026-06-04 17:41:21

Persistent Home Directories - One

Time of First Successful Submission: 2026-06-04 17:43:01

Persistent Home Directories - Two

Time of First Successful Submission: 2026-06-04 17:43:39


GCA CTF

12 / 104 3105 / 48380


Using the Terminal

Time of First Successful Submission: 2026-06-04 17:14:35

Using the VSCode Workspace

Time of First Successful Submission: 2026-06-04 17:16:33

Using the GUI Desktop

Time of First Successful Submission: 2026-06-04 17:18:03

Pasting into the Desktop

Time of First Successful Submission: 2026-06-04 17:20:09

Connecting over SSH

Time of First Successful Submission: 2026-06-04 17:28:04

Restarting Challenges

Time of First Successful Submission: 2026-06-04 17:29:47

Getting Help

Time of First Successful Submission: 2026-06-04 17:33:10

Challenge Programs

Time of First Successful Submission: 2026-06-04 17:35:19

The Flag File

Time of First Successful Submission: 2026-06-04 17:37:06

Using Privileged Mode

Time of First Successful Submission: 2026-06-04 17:41:21

Persistent Home Directories - One

Time of First Successful Submission: 2026-06-04 17:43:01

Persistent Home Directories - Two

Time of First Successful Submission: 2026-06-04 17:43:39