software ethical hacking how to crack software legally