Secure Coding in C and C++
by Seacord, Robert C.-
Complimentary 7-Day eTextbook Access - Read more
When you rent or buy this book, you will receive complimentary 7-day online access to the eTextbook version from your PC, Mac, tablet, or smartphone. Feature not included on Marketplace Items.
Buy Used
Rent Book
Digital
New Book
We're Sorry
Sold Out
How Marketplace Works:
- This item is offered by an independent seller and not shipped from our warehouse
- Item details like edition and cover design may differ from our description; see seller's comments before ordering.
- Sellers much confirm and ship within two business days; otherwise, the order will be cancelled and refunded.
- Marketplace purchases cannot be returned to eCampus.com. Contact the seller directly for inquiries; if no response within two days, contact customer service.
- Additional shipping costs apply to Marketplace purchases. Review shipping costs at checkout.
Summary
Author Biography
Table of Contents
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
An electronic version of this book is available through VitalSource.
This book is viewable on PC, Mac, iPhone, iPad, iPod Touch, and most smartphones.
By purchasing, you will be able to view this book online, as well as download it, for the chosen number of days.
Digital License
You are licensing a digital product for a set duration. Durations are set forth in the product description, with "Lifetime" typically meaning five (5) years of online access and permanent download to a supported device. All licenses are non-transferable.
More details can be found here.
A downloadable version of this book is available through the eCampus Reader or compatible Adobe readers.
Applications are available on iOS, Android, PC, Mac, and Windows Mobile platforms.
Please view the compatibility matrix prior to purchase.
