Modern Memory Safety in C/C++
Latest commit bcacab9 Aug 1, 2016 @struct minor compile fixes for ipc

README.md

Modern Memory Safety: C/C++ Vulnerability Discovery, Exploitation, Hardening

History

This repo contains the slides for a training course originally developed in 2012. It has been delivered to many students since its creation. It's sold out at the Black Hat USA conference several years in a row. The content has gone through many iterations based on feedback from those classes. The original training focused mainly on browser vulnerability discovery and exploitation. This latest version still focuses on that but also covers more topics such as custom memory allocators, hardening concepts, and exploitation at a high level.

Future

This training would not have been possible without open source projects to study, or freely available texts from the security community. In fact, the security community is one of the best proponents of open source. I want to help continue that trend.

We all know a technical training course isn't about the slides. It's about hands on interaction with tech, discussion with fellow students and the instructor. The instructors experience with the topic is also very important. So these slides are only a piece of the experience of taking the course. So one of the best contributions you can make to this repo is notes and talking points for each slide. I have created a directory in this repo specifically for that. Pull requests for notes will be reviewed and accepted as often as possible.

Errata

Despite years of tweaking and updates, there will be mistakes in these slides. They were recently exported from Keynote and it took awhile to get the formatting back. There will also be technical mistakes that may need to be fixed. If you find any of these issues please report them to me on github or email me if you don't want to be identified.

Thanks

Many of the students who have taken the course over the years are far smarter than I am. Their feedback was essential to this training.

Thanks to Yahoo for facilitating this open source release!

Licenses

This training contains snippets of code from various open source projects. They are listed here along with their license.