A method and system for protecting software products from unauthorized use
and distribution is described. The system comprises a client process
executed on a client computer coupled to a producer computer over a
network. The method comprises the steps of 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. The user receives a
registration code for use with the distributed software. Upon attempted
execution of the distributed software the producer computer requests user
registration from the user. Upon receipt of the registration information
including the registration code from the user, the producer computer
validates the registration code and constructing a security module for
transmission to the client computer. The security module is integrated
with the distributed software to allow execution of the executable
program.