/ctf

🏴 Pwned by @aesophor

Primary LanguagePython

Binary Exploitation Learning Notes and Resources

Before starting to learn binary exploitation, one is recommended to learn at least:

  1. C
  2. Python
  3. x86 Assembly
  4. OS concepts (especially virtual memory layout)
  5. Debugging programs with gdb

Fundamentals

  1. Understand x86 Stack Frames
  2. checksec (RELRO, Stack, NX, PIE)
  3. ASLR vs PIE
  4. Static vs Dynamic Linking
  5. GOT, PLT, Lazy Binding

Return Oriented Programming (ROP)

  1. Use buffer overflow to replace a return address
  2. ret2libc
  3. Chain functions with arguments
  4. Find gadgets
  5. Use readelf to find writable sections
  6. Stack pivoting
  7. x86_64 Return-to-csu (Universal ROP)

Heap Exploitation

  1. Use-after-free

Shellcode

  1. Bamboofox Trainning 2015 Summer - Shellcode