Chapter 9 Notes

to accompany Sikorski and Honig, Practical Malware Analysis, no starch press

Debugging

"Debuggers are designed to allow developers to measure and control the internal state and execution of a program."

Source-level vs. assembly-level debuggers

Kernel- vs. User-mode Debugging

Stepping-Over vs. Stepping-Into

Pausing Execution with Breakpoints

Software Breakpoints

Hardware Breakpoints

Conditional Breakpoints

Exceptions

Common Exceptions

Modifying Execution with a Debugger (in Practice)