Nightmare is an introductory course on binary exploitation and reverse engineering structured around capture-the-flag challenges.
The course addresses the problem that learning binary exploitation skills is difficult because resources often lack clear guidance on what to learn and in what order. Nightmare solves this by providing a structured curriculum that progresses from foundational concepts through increasingly complex exploitation techniques. The approach combines explanations of core concepts like assembly, tooling, and memory vulnerabilities with hands-on challenges drawn from real CTF competitions. Topics range from basic reverse engineering and buffer overflows to advanced techniques like return-oriented programming, format string exploits, and constraint solving with tools like Z3 and Angr.
The course suits developers and security practitioners who want a guided path into binary exploitation rather than scattered tutorials. It works well for those learning assembly, debugging with gdb-gef, and understanding memory safety vulnerabilities in sequence. The material assumes no prior exploitation knowledge and builds systematically through stack-based vulnerabilities, general exploitation techniques, and advanced methods. A static site version is available alongside the GitHub repository for those who prefer that presentation format.
The project maintains an active Discord community where learners can ask questions and report errors. The course content is substantial enough that the maintainer acknowledges typos are likely present and encourages community members to flag them.