Debugging, the process of locating and fixing errors, is an important of the software development lifecycle, but it, and guidance about it, is often overlooked.
Not so with Advanced Windows Debugging, which describes debugging everything from memory corruptions to thread synchronization and demonstrates how to fix the security threats and resource leaks that are side effects of failing to debug.
Chapter 6, Memory Corruption, Part II -- Heaps, focuses on how hackers may capitalize on the Windows Heap Manager to target an application. (A heap is used for the free allocation of memory and is common when the size of the memory is unknown but expected to exceed that which can fit into automatic memory.)
The chapter begins with a quick look at the architecture of the heap manager and a sample application that uses the heap manager to both allocate and free memory. From there the authors examine some of the most common types of heap corruptions -- overruns, underruns, heap handle mismatches and so on -- and provide detailed debug sessions that identify the sources of such corruptions.
Excerpted from Advanced
Windows Debugging (ISBN: 978-0-321-37446-2) by Mario Hewardt and Daniel Pravat.
Copyright © 2007. Published by Addison-Wesley Professional as part of the Microsoft Technology Series, and available at your favorite book seller. Reprinted with permission.
This was first published in February 2008