1. A computer-implemented method for protecting distributed software containing an executable program over a client server network, the method comprising: providing to a user a copy of the distributed software, the distributed software comprising an incomplete executable program requiring a security module to be installed prior to execution on the client computer; transmitting to the user a registration code for use with the distributed software; requesting user registration from the user upon attempted execution of the distributed software; receiving registration information including the registration code from the user; validating the registration code received from the user; constructing the security module upon validation of the registration code; transmitting the security module to the client computer; and integrating the security module with the distributed software to allow execution of the executable program.