What is included with this book?
Preface
About the Author
Chapter 1: Running with Scissors
1.1 Gauging the Threat
1.2 Security Concepts
1.3 C and C++
1.4 Development Platforms
1.5 Summary
1.6 Further Reading
Chapter 2: Strings
2.1 Character Strings
2.2 Common String Manipulation Errors
2.3 String Vulnerabilities and Exploits
2.4 Mitigation Strategies for Strings
2.5 String-Handling Functions
2.6 Runtime Protection Strategies
Chapter 3: Pointer Subterfuge
3.1 Data Locations
3.2 Function Pointers
3.3 Data Pointers
3.4 Modifying the Instruction Pointer
3.5 Global Offset Table
3.6 The .dtors Section
3.7 Virtual Pointers
3.8 The atexit() and on_exit() Functions
3.9 The longjmp() Function
3.10 Exception Handling
3.11 Mitigation Strategies
3.12 Summary
3.13 Further Reading
Chapter 4: Dynamic Memory Management
4.1 C Memory Management
4.2 Common C Memory Management Errors
4.3 C++ Dynamic Memory Management
4.4 Common C++ Memory Management Errors
4.5 Improperly Paired Memory Management Functions
4.6 Memory Managers
4.7 Doug Lea’s Memory Allocator
4.8 Double-Free Vulnerabilities
4.9 Mitigation Strategies
4.10 Notable Vulnerabilities
4.11 Summary
Chapter 5: Integer Security
5.1 Introduction to Integer Security
5.2 Integer Data Types
5.3 Integer Conversions
5.4 Integer Operations
5.5 Integer Vulnerabilities
5.6 Mitigation Strategies
5.7 Summary
Chapter 6: Formatted Output
6.1 Variadic Functions
6.2 Formatted Output Functions
6.3 Exploiting Formatted Output Functions
6.4 Stack Randomization
6.5 Mitigation Strategies
6.6 Notable Vulnerabilities
6.7 Summary
6.8 Further Reading
Chapter 7: Concurrency
7.1 Introduction
7.2 Performance Goals
7.3 Concurrency Pitfalls
7.4 Concurrency Mitigations
7.5 Concurrency in C and C++
7.6 Concurrency Vulnerabilities
Chapter 8: File I/O
8.1 File I/O Basics
8.2 File I/O Interfaces
8.3 Access Control
8.4 File Identification
8.5 Race Conditions
8.6 Mitigation Strategies
8.7 Summary
Chapter 9: Recommended Practices
9.1 The Security Development Lifecycle
9.2 Security Training
9.3 Requirements
9.4 Design
9.5 Implementation
9.6 Verification
9.7 Summary
9.8 Further Reading
References
Acronyms
Index
The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.