Patent ID: 8160965

Claim:
A non-transitory computer storage medium encoded with a computer program for preventing illegal use of software, the program comprising instructions that when executed by data processing apparatus of a data storage device controller cause the data processing apparatus to perform operations comprising: checking whether the software is properly installed and is not illegally modified on a data storage device; if the software is not properly installed or is illegally modified on the data storage device then blocking a launch of the software; if the software is properly installed and is not illegally modified on the data storage device then checking whether the software has to be paid for use; if the software is free for use then allowing a user to use the software normally; if the software has to be paid for use then checking whether a user has already performed a payment process; if the user has not performed the payment process then blocking the launch of the software; if the user has already made the payment then determining an available time period of software usage for each user of a current personal computer, wherein said determining the available time period of the software comprises gathering information about a usage level of the software; determining whether a current usage level of the software is higher than a predetermined usage level predetermined by a software developer or a vendor; determining the available time period on the basis of a fee paid by the user and a first price, if the usage level is not higher than the predetermined usage level; and determining the available time period on the basis of a fee paid by the user and a second price, if the usage level is higher than the predetermined usage level; if the software has been used for a period of time that is less than the determined available time period then allowing the user to use the software normally; if the software has been used for a period of time that is longer than the determined available time period then prompting the user to perform the payment process once more; and terminating an execution of the software, if the user does not perform the payment process once more in response of said prompting.