Debugger

A debugger is a computer program that is used to test and "debug" other programs, mainly to solve programming bugs. 
Debuggers offer advanced functions such as:
The same things that make a debugger useful for solving software bugs allow it to be used as a software cracking tool to defeat copy protection and other software protection features.