- 1. Introduction
- 1.1. Background
- 1.2. Inspiration
- 1.3. Overview & Schedule
- 2. Operating Systems
- 2.1. Introduction
- 2.2. Virtualization
- 2.2.1. Virtual Machines
- 2.2.2. Containers
- 2.3. Linux OS
- 2.3.1. The Terminal
- 2.3.2. Permissions
- 2.3.3. Hacker Practice
- 3. Computer Organization
- 3.1. Introduction
- 3.1.1. Math & Counting
- 3.1.2. Bits & Logic
- 3.2. Memory
- 3.2.1. Programs in Memory
- 3.2.2. Addressing
- 3.2.3. Memory Segments
- 3.3. Assembly
- 3.3.1. Registers
- 3.3.2. Instructions
- 3.3.3. ASM Memory
- 3.3.4. Control Structures
- 3.3.5. Hacker Practice
- 4. Programming Languages
- 4.1. Introduction
- 4.2. C
- 4.2.1. Writing Code
- 4.2.2. Compilation & Execution
- 4.2.3. Debugging
- 4.3. Python
- 4.3.1. Writing Code
- 4.3.2. Interpretation & Execution
- 4.3.3. Debugging
- 5. Processes and Debugging
- 5.1. Introduction
- 5.2. Executable Types
- 5.3. Using GDB
- 5.4. Interacting with Python
- 6. Security Concepts
- 6.1. CIA
- 6.2. Encryption & Hashing
- 6.3. Bruteforcing
- 6.4. DOSing
- 6.5. I/O Vectors
- 7. What's Next