Improving Shareware Unlock Code Mechanisms