The same features which makes a debugger useful for solving software bugs allows it to be used as a software cracking tool to crack copy protection and other software protection features . The same functionality which makes a debugger useful for eliminating bugs allows it to be used as a software cracking tool to evade copy protection , digital rights management , and other software protection features .