C/C++ for Developers

Learn various classes of vulnerabilities and common ways memory and numbers are exploited when coding securely. Gain a thorough understanding of the most common ways insecure code is created. We discuss the platform mitigations and compiler optimizations that can be implemented to secure your code.

31 modules | 6 hrs 54 min | 26 experiments | Green Belt Level
Try C/C++ Training Modules!

  • Viewing code from an attacker's point of view
  • Common vulnerabilities
  • Basic anatomy of shellcode
  • Variety of tool utilized to detect security issues during development and testing
  • Dynamic analysis techniques
  • Examples of Undefined Behavior
  • Detecting and mitigating Stack Buffer Overflow and more

What's Included?

C/C++ includes our standard 18 Green Belt modules along with our standard 13 Green Belt Secure Development lesson. Each of our lessons are short and conclude with a brief ten question assessment. The learning module length is purposeful – they are perfect for filling gaps in a developer’s day while analyzing.

Secure Development Core Lesson Modules
Intro to Secure Development
Intro to Secure Coding
Secure Coding Best Practices: Part 1
Secure Coding Best Practices: Part 2
Language Typing
Securing the Development Environment
Protecting your Code Repository
Producing a Clean, Maintainable, & Secure Code Culture
Secure the Release
Designing a Secure App or Product
Thinking Like A Penetration Tester
Secure Design Principles in Action: Part 1
Secure Design Principles in Action: Part 2
C/C++ for Developers
Green Belt Path
Introduction and Specifications
Classes of Vulnerabilities, Part 1
Classes of Vulnerabilities, Part 2
Classes of Vulnerabilities, Part 3
Anatomy of a Stack Buffer Overflow Exploit
Platform Mitigations
Undefined Behavior & Compiler Optimizations
Exploitable Programming Constructs with Memory: Part 1
Exploitable Programming Constructs with Memory: Part 2
Exploitable Programming Constructs with Numbers
Secure Programming Practices: Part 1
Secure Programming Practices: Part 2
Secure Programming Practices: Part 3
Secure Programming Practices: Part 4
Insecure Coding: Part 1
Insecure Coding, Part 2
Insecure Coding, Part 3