The software protection is the key technology for the shareware and it can delay and prevent the software reverse and cracking. There are many methods such as junk code, anti-debug, virtual machine, deformation, packers, encryption and verification. The software registration is the most important step of protection and it can be implemented by many forms such as network registration, license key or file, dongle. This paper introduces and compares these protection methods. Some architectures of protection based on encryption and verification are provided and they are realized by RSA encryption ...