wangyh

🐧 💻

Intro to Programming Languages

15 / 234 9908 / 32803


Commands

Time of First Successful Submission: 2026-03-29 05:10:07

Command Arguments

Time of First Successful Submission: 2026-03-29 05:13:06

Command History

Time of First Successful Submission: 2026-03-29 05:14:13

The Root Path

Time of First Successful Submission: 2026-03-29 05:56:36

Absolute Paths

Time of First Successful Submission: 2026-03-29 05:59:57

Changing position

Time of First Successful Submission: 2026-03-29 06:03:50

Changing to an Absolute Path

Time of First Successful Submission: 2026-03-29 06:06:28

Relative Paths

Time of First Successful Submission: 2026-03-29 06:14:38

Cat

Time of First Successful Submission: 2026-03-29 12:18:40

Ls

Time of First Successful Submission: 2026-03-29 12:29:48

Ls All

Time of First Successful Submission: 2026-03-29 12:36:44

Find

Time of First Successful Submission: 2026-03-29 12:52:39

Piping Echo

Time of First Successful Submission: 2026-04-19 09:32:45

Piping Stdout

Time of First Successful Submission: 2026-04-19 09:34:03

Piping Stdin

Time of First Successful Submission: 2026-04-19 09:39:47


Start Here

10 / 12 20199 / 44388


Using the Terminal

Time of First Successful Submission: 2026-03-29 04:36:03

Using the VSCode Workspace

Time of First Successful Submission: 2026-03-29 04:42:17

Using the GUI Desktop

Time of First Successful Submission: 2026-03-29 04:49:27

Pasting into the Desktop

Time of First Successful Submission: 2026-03-29 04:51:41

Restarting Challenges

Time of First Successful Submission: 2026-03-29 05:04:42

Challenge Programs

Time of First Successful Submission: 2026-03-29 05:08:24

The Flag File

Time of First Successful Submission: 2026-03-29 05:34:29

Using Privileged Mode

Time of First Successful Submission: 2026-03-29 05:42:58

Persistent Home Directories - One

Time of First Successful Submission: 2026-03-29 05:50:50

Persistent Home Directories - Two

Time of First Successful Submission: 2026-03-29 05:52:31


Linux Luminarium

128 / 128 2856 / 33231


Intro to Commands

Time of First Successful Submission: 2026-03-29 05:10:07

Intro to Arguments

Time of First Successful Submission: 2026-03-29 05:13:06

Command History

Time of First Successful Submission: 2026-03-29 05:14:13

The Root

Time of First Successful Submission: 2026-03-29 05:56:36

Program and absolute paths

Time of First Successful Submission: 2026-03-29 05:59:57

Position thy self

Time of First Successful Submission: 2026-03-29 06:03:50

Position elsewhere

Time of First Successful Submission: 2026-03-29 06:06:28

implicit relative paths, from /

Time of First Successful Submission: 2026-03-29 06:14:38

explicit relative paths, from /

Time of First Successful Submission: 2026-03-29 12:13:19

implicit relative path

Time of First Successful Submission: 2026-03-29 12:14:09

home sweet home

Time of First Successful Submission: 2026-03-29 12:16:59

cat: not the pet, but the command!

Time of First Successful Submission: 2026-03-29 12:18:40

catting absolute paths

Time of First Successful Submission: 2026-03-29 12:19:30

more catting practice

Time of First Successful Submission: 2026-03-29 12:22:08

grepping for a needle in a haystack

Time of First Successful Submission: 2026-03-29 12:23:36

comparing files

Time of First Successful Submission: 2026-03-29 12:28:03

listing files

Time of First Successful Submission: 2026-03-29 12:29:48

touching files

Time of First Successful Submission: 2026-03-29 12:31:24

removing files

Time of First Successful Submission: 2026-03-29 12:32:08

moving files

Time of First Successful Submission: 2026-03-29 12:34:30

copying files

Time of First Successful Submission: 2026-03-29 12:35:38

hidden files

Time of First Successful Submission: 2026-03-29 12:36:44

An Epic Filesystem Quest

Time of First Successful Submission: 2026-03-29 12:46:02

making directories

Time of First Successful Submission: 2026-03-29 12:46:55

finding files

Time of First Successful Submission: 2026-03-29 12:52:39

linking files

Time of First Successful Submission: 2026-03-29 12:56:38

Learning From Documentation

Time of First Successful Submission: 2026-03-30 07:38:29

Learning Complex Usage

Time of First Successful Submission: 2026-03-30 07:52:50

Reading Manuals

Time of First Successful Submission: 2026-03-30 08:04:13

Searching Manuals

Time of First Successful Submission: 2026-03-30 08:21:41

Searching For Manuals

Time of First Successful Submission: 2026-03-30 08:58:32

Helpful Programs

Time of First Successful Submission: 2026-03-30 09:04:07

Help for Builtins

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

Matching with *

Time of First Successful Submission: 2026-03-30 09:24:49

Matching with ?

Time of First Successful Submission: 2026-04-19 09:05:41

Matching with []

Time of First Successful Submission: 2026-04-19 09:08:21

Matching paths with []

Time of First Successful Submission: 2026-04-19 09:09:43

Multiple globs

Time of First Successful Submission: 2026-04-19 09:16:42

Mixing globs

Time of First Successful Submission: 2026-04-19 09:26:27

Exclusionary globbing

Time of First Successful Submission: 2026-04-19 09:27:57

Tab completion

Time of First Successful Submission: 2026-04-19 09:29:22

Multiple options for tab completion

Time of First Successful Submission: 2026-04-19 09:30:55

Tab completion on commands

Time of First Successful Submission: 2026-04-19 09:31:19

Redirecting output

Time of First Successful Submission: 2026-04-19 09:32:45

Redirecting more output

Time of First Successful Submission: 2026-04-19 09:34:03

Appending output

Time of First Successful Submission: 2026-04-19 09:35:16

Redirecting errors

Time of First Successful Submission: 2026-04-19 09:37:56

Redirecting input

Time of First Successful Submission: 2026-04-19 09:39:47

Grepping stored results

Time of First Successful Submission: 2026-04-19 09:42:16

Grepping live output

Time of First Successful Submission: 2026-04-19 09:43:13

Grepping errors

Time of First Successful Submission: 2026-04-19 09:46:15

Filtering with grep -v

Time of First Successful Submission: 2026-04-19 09:47:36

Filtering with sed

Time of First Successful Submission: 2026-04-19 09:49:46

Duplicating piped data with tee

Time of First Successful Submission: 2026-04-19 11:20:35

Process substitution for input

Time of First Successful Submission: 2026-04-19 11:17:45

Writing to multiple programs

Time of First Successful Submission: 2026-04-19 11:23:01

Split-piping stderr and stdout

Time of First Successful Submission: 2026-04-19 11:26:53

Named pipes

Time of First Successful Submission: 2026-04-19 11:28:29

Printing Variables

Time of First Successful Submission: 2026-04-19 11:30:21

Setting Variables

Time of First Successful Submission: 2026-04-19 11:33:19

Multi-word Variables

Time of First Successful Submission: 2026-04-19 11:34:50

Exporting Variables

Time of First Successful Submission: 2026-04-19 11:43:46

Printing Exported Variables

Time of First Successful Submission: 2026-04-19 11:46:25

Storing Command Output

Time of First Successful Submission: 2026-04-19 11:52:16

Reading Input

Time of First Successful Submission: 2026-04-19 11:56:03

Reading Files

Time of First Successful Submission: 2026-04-19 11:57:44

Translating characters

Time of First Successful Submission: 2026-04-20 03:03:35

Deleting characters

Time of First Successful Submission: 2026-04-20 03:04:26

Deleting newlines

Time of First Successful Submission: 2026-04-20 03:05:47

Extracting the first lines with head

Time of First Successful Submission: 2026-04-20 03:06:58

Extracting specific sections of text

Time of First Successful Submission: 2026-04-20 03:08:56

Sorting data

Time of First Successful Submission: 2026-04-20 03:11:04

Listing Processes

Time of First Successful Submission: 2026-04-20 03:23:49

Killing Processes

Time of First Successful Submission: 2026-04-20 03:27:21

Interrupting Processes

Time of First Successful Submission: 2026-04-20 03:28:59

Killing Misbehaving Processes

Time of First Successful Submission: 2026-04-20 03:31:52

Suspending Processes

Time of First Successful Submission: 2026-04-20 03:33:26

Resuming Processes

Time of First Successful Submission: 2026-04-20 03:33:56

Backgrounding Processes

Time of First Successful Submission: 2026-04-20 03:35:17

Foregrounding Processes

Time of First Successful Submission: 2026-04-20 03:36:43

Starting Backgrounded Processes

Time of First Successful Submission: 2026-04-20 03:37:25

Process Exit Codes

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

Becoming root with su

Time of First Successful Submission: 2026-04-20 06:27:40

Other users with su

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

Cracking passwords

Time of First Successful Submission: 2026-04-20 06:36:21

Using sudo

Time of First Successful Submission: 2026-04-20 06:38:45

Changing File Ownership

Time of First Successful Submission: 2026-04-20 06:47:42

Groups and Files

Time of First Successful Submission: 2026-04-20 06:52:41

Fun With Groups Names

Time of First Successful Submission: 2026-04-20 06:54:06

Changing Permissions

Time of First Successful Submission: 2026-04-20 06:59:10

Executable Files

Time of First Successful Submission: 2026-04-20 06:59:43

Permission Tweaking Practice

Time of First Successful Submission: 2026-04-20 07:07:41

Permissions Setting Practice

Time of First Successful Submission: 2026-04-20 07:14:04

The SUID Bit

Time of First Successful Submission: 2026-04-20 07:17:57

Chaining with Semicolons

Time of First Successful Submission: 2026-04-21 02:19:51

Building on Success

Time of First Successful Submission: 2026-04-21 02:21:47

Handling Failure

Time of First Successful Submission: 2026-04-21 02:23:09

Your First Shell Script

Time of First Successful Submission: 2026-04-21 02:27:55

Redirecting Script Output

Time of First Successful Submission: 2026-04-21 02:55:57

Executable Shell Scripts

Time of First Successful Submission: 2026-04-21 02:53:25

Understanding Shebangs

Time of First Successful Submission: 2026-04-21 03:00:29

Scripting with Arguments

Time of First Successful Submission: 2026-04-21 03:02:44

Scripting with Conditionals

Time of First Successful Submission: 2026-04-21 03:05:02

Scripting with Default Cases

Time of First Successful Submission: 2026-04-21 03:07:10

Scripting with Multiple Conditions

Time of First Successful Submission: 2026-04-21 03:09:53

Reading Shell Scripts

Time of First Successful Submission: 2026-04-21 03:11:13

Launching Screen

Time of First Successful Submission: 2026-04-21 03:14:56

Detaching and Attaching

Time of First Successful Submission: 2026-04-21 03:16:50

Finding Sessions

Time of First Successful Submission: 2026-04-21 03:18:42

Switching Windows

Time of First Successful Submission: 2026-04-21 03:20:28

Detaching and Attaching (tmux)

Time of First Successful Submission: 2026-04-21 03:21:41

Switching Windows (tmux)

Time of First Successful Submission: 2026-04-21 03:23:39

The PATH Variable

Time of First Successful Submission: 2026-04-21 04:56:08

Setting PATH

Time of First Successful Submission: 2026-04-21 04:59:12

Finding Commands

Time of First Successful Submission: 2026-04-21 05:01:12

Adding Commands

Time of First Successful Submission: 2026-04-21 05:04:38

Hijacking Commands

Time of First Successful Submission: 2026-04-21 05:09:49

Bashrc Backdoor

Time of First Successful Submission: 2026-04-21 06:20:13

Sniffing Input

Time of First Successful Submission: 2026-04-21 06:23:52

Overshared Directories

Time of First Successful Submission: 2026-04-21 06:31:30

Tricky Linking

Time of First Successful Submission: 2026-04-21 06:38:25

Sniffing Process Arguments

Time of First Successful Submission: 2026-04-21 08:27:02

Snooping on Configurations

Time of First Successful Submission: 2026-04-21 08:29:02

The Fork Bomb

Time of First Successful Submission: 2026-04-21 08:38:41

Disk-Space Doomsday

Time of First Successful Submission: 2026-04-21 08:47:06

rm -rf /

Time of First Successful Submission: 2026-04-21 08:49:40

Life after rm -rf /

Time of First Successful Submission: 2026-04-21 08:53:12

Finding meaning after rm -rf /

Time of First Successful Submission: 2026-04-21 08:55:20


Computing 101

94 / 94 422 / 22016


Your First Register

Time of First Successful Submission: 2026-04-21 12:05:26

Your First Syscall

Time of First Successful Submission: 2026-04-21 12:07:29

Exit Codes

Time of First Successful Submission: 2026-04-21 12:09:08

Building Executables

Time of First Successful Submission: 2026-04-21 12:12:55

Moving Between Registers

Time of First Successful Submission: 2026-04-21 12:15:54

Loading From Memory

Time of First Successful Submission: 2026-04-21 12:28:50

More Loading Practice

Time of First Successful Submission: 2026-04-21 12:30:28

Dereferencing Pointers

Time of First Successful Submission: 2026-04-21 12:33:09

Dereferencing Yourself

Time of First Successful Submission: 2026-04-21 12:34:38

Dereferencing with Offsets

Time of First Successful Submission: 2026-04-21 12:37:30

Stored Addresses

Time of First Successful Submission: 2026-04-21 12:41:16

Double Dereference

Time of First Successful Submission: 2026-04-21 12:45:28

The Stack

Time of First Successful Submission: 2026-04-21 13:00:59

Stack Offsets

Time of First Successful Submission: 2026-04-21 13:02:16

Program Arguments on the Stack

Time of First Successful Submission: 2026-04-21 13:05:46

Popping From the Stack

Time of First Successful Submission: 2026-04-21 13:08:31

Disassembling Programs

Time of First Successful Submission: 2026-04-21 13:20:07

Tracing Syscalls

Time of First Successful Submission: 2026-04-22 13:41:23

Starting GDB

Time of First Successful Submission: 2026-04-22 13:42:13

Quitting GDB

Time of First Successful Submission: 2026-04-22 13:43:00

Starting Programs in GDB

Time of First Successful Submission: 2026-04-22 13:45:19

Disassembling in GDB

Time of First Successful Submission: 2026-04-22 13:46:14

Stepping Through Instructions

Time of First Successful Submission: 2026-04-22 13:48:34

Reading Register Values

Time of First Successful Submission: 2026-04-22 13:50:10

Popping Stack Values

Time of First Successful Submission: 2026-04-22 13:51:32

Examining Memory

Time of First Successful Submission: 2026-04-22 13:56:04

Examining Stack Pointers

Time of First Successful Submission: 2026-04-22 13:59:53

Cooperative Debugging

Time of First Successful Submission: 2026-04-22 14:05:46

Writing Output

Time of First Successful Submission: 2026-04-23 07:25:37

Chaining Syscalls

Time of First Successful Submission: 2026-04-23 07:27:29

Writing Strings

Time of First Successful Submission: 2026-04-23 07:29:11

Reading Data

Time of First Successful Submission: 2026-04-23 07:43:49

Opening Files

Time of First Successful Submission: 2026-04-23 07:52:22

Hardcoding the Filename

Time of First Successful Submission: 2026-04-23 07:57:52

Comparing Values

Time of First Successful Submission: 2026-04-23 09:59:06

Comparing Characters

Time of First Successful Submission: 2026-04-23 10:03:15

Conditional Control Flow

Time of First Successful Submission: 2026-04-23 10:13:00

Comparing Strings

Time of First Successful Submission: 2026-04-23 10:15:15

Reverse the Password

Time of First Successful Submission: 2026-04-23 10:20:18

Conditionals Without Conditionals

Time of First Successful Submission: 2026-04-23 11:36:06

Looping

Time of First Successful Submission: 2026-04-23 11:41:15

Reverse the Calculation

Time of First Successful Submission: 2026-04-23 11:47:55

Reverse the Reverse

Time of First Successful Submission: 2026-04-23 11:48:54

Dealing with Bitwise Operations

Time of First Successful Submission: 2026-04-23 11:50:43

Loops on Data

Time of First Successful Submission: 2026-04-23 11:53:01

set-register

Time of First Successful Submission: 2026-04-24 04:35:43

set-multiple-registers

Time of First Successful Submission: 2026-04-24 04:38:13

add-to-register

Time of First Successful Submission: 2026-04-24 04:41:20

linear-equation-registers

Time of First Successful Submission: 2026-04-24 04:44:54

integer-division

Time of First Successful Submission: 2026-04-24 05:01:12

modulo-operation

Time of First Successful Submission: 2026-04-24 05:48:41

set-upper-byte

Time of First Successful Submission: 2026-04-24 05:50:54

efficient-modulo

Time of First Successful Submission: 2026-04-24 06:02:15

byte-extraction

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

bitwise-and

Time of First Successful Submission: 2026-04-24 06:14:23

check-even

Time of First Successful Submission: 2026-04-24 06:40:07

memory-read

Time of First Successful Submission: 2026-04-24 11:25:15

memory-write

Time of First Successful Submission: 2026-04-24 11:25:58

memory-increment

Time of First Successful Submission: 2026-04-24 11:28:58

byte-access

Time of First Successful Submission: 2026-04-24 11:31:40

memory-size-access

Time of First Successful Submission: 2026-04-24 11:33:43

little-endian-write

Time of First Successful Submission: 2026-04-24 11:36:16

memory-sum

Time of First Successful Submission: 2026-04-24 11:46:15

stack-subtraction

Time of First Successful Submission: 2026-04-24 11:48:18

swap-stack-values

Time of First Successful Submission: 2026-04-24 11:50:40

average-stack-values

Time of First Successful Submission: 2026-04-24 11:55:31

absolute-jump

Time of First Successful Submission: 2026-04-24 12:00:34

relative-jump

Time of First Successful Submission: 2026-04-24 12:07:01

jump-trampoline

Time of First Successful Submission: 2026-04-24 12:09:10

conditional-jump

Time of First Successful Submission: 2026-04-24 12:25:37

indirect-jump

Time of First Successful Submission: 2026-04-24 12:39:30

average-loop

Time of First Successful Submission: 2026-04-24 12:46:45

count-non-zero

Time of First Successful Submission: 2026-04-24 12:57:58

string-lower

Time of First Successful Submission: 2026-04-24 13:24:18

most-common-byte

Time of First Successful Submission: 2026-04-24 13:43:20

Exit

Time of First Successful Submission: 2026-04-25 09:03:17

Socket

Time of First Successful Submission: 2026-04-25 09:10:51

Bind

Time of First Successful Submission: 2026-04-25 09:22:11

Listen

Time of First Successful Submission: 2026-04-25 09:26:18

Accept

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

Static Response

Time of First Successful Submission: 2026-04-25 10:29:28

Dynamic Response

Time of First Successful Submission: 2026-04-25 10:31:57

Iterative GET Server

Time of First Successful Submission: 2026-04-25 10:32:49

Concurrent GET Server

Time of First Successful Submission: 2026-04-25 10:33:41

Concurrent POST Server

Time of First Successful Submission: 2026-04-25 10:36:08

Web Server

Time of First Successful Submission: 2026-04-25 10:37:07

Debugging Programs

Time of First Successful Submission: 2026-04-25 10:52:09

Inspecting Registers

Time of First Successful Submission: 2026-04-25 10:54:14

Examining Memory

Time of First Successful Submission: 2026-04-25 11:03:39

Setting Breakpoints

Time of First Successful Submission: 2026-04-25 11:22:12

GDB Scripting

Time of First Successful Submission: 2026-04-25 11:36:25

Modifying Data

Time of First Successful Submission: 2026-04-25 13:27:35

Modifying Execution

Time of First Successful Submission: 2026-04-25 13:28:27

Broken Functions

Time of First Successful Submission: 2026-04-25 13:37:10


GCA CTF

10 / 104 20328 / 44668


Using the Terminal

Time of First Successful Submission: 2026-03-29 04:36:03

Using the VSCode Workspace

Time of First Successful Submission: 2026-03-29 04:42:17

Using the GUI Desktop

Time of First Successful Submission: 2026-03-29 04:49:27

Pasting into the Desktop

Time of First Successful Submission: 2026-03-29 04:51:41

Restarting Challenges

Time of First Successful Submission: 2026-03-29 05:04:42

Challenge Programs

Time of First Successful Submission: 2026-03-29 05:08:24

The Flag File

Time of First Successful Submission: 2026-03-29 05:34:29

Using Privileged Mode

Time of First Successful Submission: 2026-03-29 05:42:58

Persistent Home Directories - One

Time of First Successful Submission: 2026-03-29 05:50:50

Persistent Home Directories - Two

Time of First Successful Submission: 2026-03-29 05:52:31