You have invested a significant amount of time and creativity in writing your killer application but you are worried about a competitor or hacker reverse-engineering your software and stealing your intellectual property. What is the best way to protect it?