Abstract: Software is securely distributed with limited usage rights. The software may be an executable program and/or one or more data files such as image or multimedia data files. The software includes an access control object which prevents at least some usage of the software without use of a first access control code. The first access control code is produced based on selected information characteristic of the user's computer system. The access control code is produced in a server computer to which the user directs a request for the access control code. The user makes a payment to receive the access control code, which is then downloaded to the user's computer system.
Abstract: A method of macro-compressing a software product made up of one or more separate software packages matches strings having a predetermined minimum length with each other. The matching strings are expanded in size by including adjacent software. A compressed software object is formed by producing software blocks from the largest expanded matching strings and including assembly information that tells how to reconstruct the remaining strings from the software blocks. The software packages may either be data objects or executable objects.
A method of producing a maximally compressed software product first macro-compresses the software product, and subsequently micro-compresses it. Micro-compression matches strings of the macro-compressed software product, each having a predetermined maximum size and separated from each other by a maximum distance, and eliminates redundant strings.