Title: Virtual Breakpoints for x86/64,
Abstract: Efficient, reliable trapping of execution in a program at the desired
location is a hot area of research for security professionals. The progression
of debuggers and malware is akin to a game of cat and mouse - each are
constantly in a state of trying to thwart one another. At the core of most
efficient debuggers today is a combination of virtual machines and traditional
binary modification breakpoints (int3). In this paper, we present a design for
Virtual Breakpoints, a modification to the x86 MMU which brings breakpoint
management into hardware alongside page tables. We demonstrate the fundamental
abstraction failures of current trapping methods, and rebuild the mechanism
from the ground up. Our design delivers fast, reliable trapping without the
pitfalls of binary modification.