Cyber Training Guide
CTF WriteupsOther NotesHow-To: Radare2How-To: GDB
  • Cyber Training Guide
  • 0x0: Introduction
    • git-good
    • root-1
    • root-2
    • intro
  • Binary Exploitation (pwn)
    • What is Binary Exploitation?
    • 0x1: ret2win
      • win32
      • win64
      • args
    • 0x2: shellcodes
      • location
      • shell
      • constrained
    • 0x3: format strings
      • format
      • chase
      • bbpwn
    • 0x4: stack canaries
      • canary
      • findme
    • 0x5: ROP
      • rop2win
      • split
      • callme
      • write4
      • badchars
    • 0x6: PIE
      • gimme
      • leak32
      • leak64
    • 0x7: ASLR
      • groundzero
      • stepup
      • ret2plt
    • 0x8: GOT overwrites
      • gotem
      • gotem64
  • Programming
    • What is the Programming Section?
    • 0x9: Data Serialization
      • LinkedOps
      • Tree
      • TeLeVision
    • 0xA: Programming
      • Calorie Counting
      • Hash
      • Rock Paper Scissors
      • Watch the Register
      • Supply Stacks
      • Rope Bridge
      • Mountain Climbers
  • Reverse Engineering (RE)
    • What is Reverse Engineering?
    • 0xB: Ghidra
      • hardcode
      • undo
      • snake
  • Toolkit
    • Using Pwntools
      • Establishing Connection
      • Context
      • Sending/Receiving Data
      • The ELF Class
    • My Workflow
      • Tmux
      • Vim
Powered by GitBook
On this page
  • Who am I?
  • What background is expected?
  • What are some other resources?

Was this helpful?

Cyber Training Guide

Next0x0: Introduction

Last updated 8 days ago

Was this helpful?

Welcome to my notes on offensive cybersecurity and low-level programming.

[!warning] This site will soon be deprecated in favor of .

If this resource helped you out at all, consider supporting me on :)

Who am I?

I graduated from Vanderbilt University with a degree in computer science. During my time, I was a member of VandyHacks, Vanderbilt's CTF Team, and our SWE Internship Prep Team.

There are many sites out there that provide resources for learning binary exploitation, low-level programming, and reverse engineering. However, I found that many of these sites don't provide enough explanation of the theory; I always felt like something was missing in my understanding. I created these notes to help bridge the gap and provide a more comprehensive resource.

What background is expected?

You are strongly recommended to have a basic understanding of computer science, especially with a lower-level language. I recommend that students from a higher-level language background (like Python) begin to study an object-oriented, statically typed language (like C, C++, or Java). Starting in the may be a good idea if you're not confident in your programming skills.

The content in these lecture notes relies heavily on low-level programming, especially for binary exploitation. Much of our analysis is based on assembly code, which is the most accurate representation of the instructions being executed. Exploits are written in Python using the library, a Python library for binary exploitation.

The programming section requires familiarity with C. You should be comfortable with pointers, memory management in C, and file I/O for text and binary files.

What are some other resources?

These notes are inspired by a series of helpful sources. I developed most of the challenges myself, but other sources inspired some. A few binaries come directly from CTF competitions; I cite those in the descriptions of the challenges.

Here is a list of the resources I recommend:

Learning Content

  • Hacking: The Art of Exploitation by Jon Erickson

  • Cracking the Coding Interview by Gayle Laakmann McDowell

Practicing Material

(Lots of Inspiration came from here)

Registering for a CTF competition on

IronForge Cyber
Buymeacoffee
My GitHub Account
CTFTime Profile
Programming Section
pwntools
Ir0nstone's Binex Notes
LiveOverflow
Nightmare
PicoCTF
HackTheBox
OverTheWire
Advent of Code
CTFTime