Computing 101

Computers run an incredible managerie of programs that make modern life possible. But how do they work, deep down inside? In this dojo, we will dive into the depths of computation, reach (something close to) its very underpinnings, and strive to understand it all.

Your First Program

Software Introspection

Computer Memory

Hello Hackers

Assembly Crash Course

Debugging Refresher

A critical part of working with computing is understanding what goes wrong when something inevitably does. This module will build on your prior exposure to GDB with some more debugging of programs: digging in, poking around, and gaining knowledge. This is one of the most critical skills that you will learn in your computing journey, and this module will hopefully help water the seed that we planted before.

As you know, GDB is a very powerful dynamic analysis tool which you can use in order to understand the state of a program throughout its execution. You will become more familiar with some of its capabilities in this module.

level 4

Question

In order to solve this level, you must figure out a series of random values which will be placed on the stack. As before, run will start you out, but it will interrupt the program and you must, carefully, continue its execution.

You are highly encouraged to try using combinations of stepi, nexti, break, continue, and finish to make sure you have a good internal understanding of these commands. The commands are all absolutely critical to navigating a program’s execution.

NOTE: This challenge will require you to read and understand assembly! Don’t worry, this skill will come in quite handy later in pwn.college.

Solution

Building a WebServer