This roadmap is meant to help guide me to becoming competent (and eventually master) the following skills:
- Binary Exploitation
- Reverse Engineering
- Systems Programming
- Vulnerability Research
https://github.com/seal9055/resources
https://ctf-wiki.org/pwn/linux/user-mode/environment/
- Fundamentals
- Reverse Engineering
- Binary Exploitation
- Vulnerability Research
- Systems Programming
- Toolbox
- Contributing & Feedback
- Process of mastering a skill
- The importance of deep work and the 30-hour method for learning a new skill
- Paradox of choice
- Computer Architecture and Assembly
- Programming
- C
- C++
- Python
- Operating Systems
- Linux internals (processes, memory management, syscalls)
- Basic Windows internals (PE format, WinAPI) — learn as needed for targets
- Symbolic Analysis
- Learn to analyze programs and determine which inputs cause which specific part of a program to execute.
- Debugging
- GDB
- Binary Ninja
- WinDbg
- Reversing C++ binaries
- Reverse Engineering 101 From malwareunicorn
- Introduction to windows malware reverse engineering
- Reverse Engineering For Everyone
- Flare On series
- Solutions can be found on the website.
- Crackmes
- A website for reverse engineering challenges.
Each week do the following:
- Pick a new exploit technique.
- Learn the theory behind the exploit technique.
- Read and follow CTF writeups that use that technique.
- Play and solve 2 - 4 CTFs that use that technique.
- Write a blog post and explain the technique, and also provide clear examples.
- Pwn College
- Nightmare
- lectures from University of Delaware on software exploitation
- Lectures from UMass CyberSecurity Club
- https://www.lazenca.net/
- Explanation of exploit techniques
- low level exploitation by 0xdevil
- https://connormcgarr.github.io/
- voidsec.com
- Will's root
- Corelan
- gamozolabs
- ir0nstone's notes on kernel exploitation
- Linux kernel exploitation series
- how2kernel
- Linux Kernel Pwn
- Another Linux kernel exploitation series
- Pwanyable
- Pwn Adventure Series by Vector35
- Exploit Eduction
- Rop Emporium
- Practice Return Oriented Programming
- PhrackCTF from Chompie/xforeced
- Wargames
- Vulnerabilities
- CVE North Stars
- Use freely available CVE information to learn become proficient in vulnerability analysis. This tutorial walks through practical CVE analysis, binary patch diffing, and root cause analysis.
- Off by one
- Youtube channel with streams discussing vulnerability research, exploit development and reverse enginering.
- how to get started
- Pick a old software and find vulnerabilities.
| Category | Tools I'm Learning |
|---|---|
| Disassembler/Decompiler | Binary Ninja |
| Debugger | GDB (with GEF) and Radare2 |
| Exploitation | Pwntools |
| RE Frameworks | angr (for symbolic execution) and Radare2 |
This is a personal roadmap. If you have an excellent resource or spot an inaccuracy, feel free to open an Issue. Let's learn together.