US-12619687-B2 - Secure software life duration timer
Abstract
An example embodiment includes an example embodiment includes a method performed by a processor of a user device. The method including receiving, by the processor of the user device, instructions for installing application software on the user device, and installing the application software on the user device based on the instructions. The installation including installing library code of the application software in a section of a memory device of the user device and installing timer code in the section of the memory device along with the library code. The erasure of the timer code from the memory device causes erasure of the library code from the memory device. Decrementing, by the processor of the user device, the timer code when the processor executes the library code, the timer code limiting a life duration of the user device executing the application software.
Inventors
- Aurelie Fontaine
- Remi Buisson
Assignees
- INVENSENSE, INC.
Dates
- Publication Date
- 20260505
- Application Date
- 20230825
Claims (18)
- 1 . A method performed by a processor of a user device, the method comprising: receiving, by the processor of the user device, instructions for installing application software on the user device; installing the application software on the user device based on the instructions, the installation including: installing library code of the application software in a sector of a flash memory device of the user device, and installing timer code in the sector of the flash memory device along with the library code, wherein erasure of the timer code from the sector of the flash memory device causes erasure of the library code from the sector of the flash memory device; and decrementing, by the processor of the user device, the timer code when the processor executes the library code, the timer code limiting a life duration of the user device executing the application software.
- 2 . The method of claim 1 , further comprising: decrementing, by the processor of the user device, the timer code by toggling one or more bits in the timer code when the processor executes the library code.
- 3 . The method of claim 1 , further comprising: decrementing, by the processor of the user device, the timer code each time that the processor executes the library code.
- 4 . The method of claim 1 , further comprising: decrementing, by the processor of the user device, the timer code in accordance with a duration of time that the processor executes the library code.
- 5 . The method of claim 1 , further comprising: decrementing, by the processor of the user device, the timer code at a predetermined frequency when the processor executes the library code.
- 6 . The method of claim 1 , further comprising: decrementing, by the processor of the user device, the timer code until the timer code expires; and preventing, by the processor of the user device, execution of the application software when the timer code expires.
- 7 . The method of claim 1 , further comprising: executing, by the processor of the user device, the library code for a predetermined duration of time defined by the timer code.
- 8 . The method of claim 1 , further comprising: executing, by the processor of the user device, the library code for a trial period of the application software defined by the timer code.
- 9 . The method of claim 1 , further comprising: erasing, by the processor of the user device, the timer code; and preventing, by the processor of the user device, execution of the application software due to the erasing of the timer code.
- 10 . A method performed by a processor of an application software device, the method comprising: creating, by the processor of the application software device, instructions for installing application software on a user device, the instructions instructing the user device to: install library code of the application software in a sector of a flash memory device of the user device, install timer code in the sector of the flash memory device along with the library code, wherein erasure of the timer code from the sector of the flash memory device causes erasure of the library code from the sector of the flash memory device, and decrement the timer code when the user device executes the library code, the timer code limiting a life duration of the user device executing the application software; and providing the instructions to the user device for facilitating installation of the application software on the user device.
- 11 . The method of claim 10 , further comprising: creating, by the processor of the application software device, the instructions to instruct the user device to decrement the timer code by toggling one or more bits in the timer code when the user device executes the library code.
- 12 . The method of claim 10 , further comprising: creating, by the processor of the application software device, the instructions to instruct the user device to decrement the timer code each time that the user device executes the library code.
- 13 . The method of claim 10 , further comprising: creating, by the processor of the application software device, the instructions to instruct the user device to decrement the timer code in accordance with a duration of time that the user device executes the library code.
- 14 . The method of claim 10 , further comprising: creating, by the processor of the application software device, the instructions to instruct the user device to decrement the timer code at a predetermined frequency when the user device executes the library code.
- 15 . The method of claim 10 , further comprising: creating, by the processor of the application software device, the instructions to instruct the user device to: decrement the timer code until the timer code expires, and prevent execution of the application software when the timer code expires.
- 16 . The method of claim 10 , further comprising: creating, by the processor of the application software device, the instructions to instruct the user device to execute the library code for a predetermined duration of time defined by the timer code.
- 17 . The method of claim 10 , further comprising: creating, by the processor of the application software device, the instructions to instruct the user device to execute the library code for a trial period of the application software defined by the timer code.
- 18 . The method of claim 10 , further comprising: creating, by the processor of the application software device, the instructions to instruct the user device to prevent execution of the application software in response to erasing the timer code.
Description
FIELD A system and method for implementing a secure software life duration timer. BACKGROUND Conventional software life duration timers are used by software companies to set a predetermined permitted duration of time that the end user is able to execute a software application. For example, this predetermined duration of the timer may be set based on a trial period or license period of the software application. However, these conventional software life duration timers are susceptible to tampering where the end user is able to reset or freeze the timer so that it doesn't expire, thereby allowing the end user to utilize the software application beyond the predetermined permitted duration. SUMMARY An example embodiment includes a method performed by a processor of a user device. The method including receiving, by the processor of the user device, instructions for installing application software on the user device, and installing the application software on the user device based on the instructions. The installation including installing library code of the application software in a section of a memory device of the user device, and installing timer code in the section of the memory device along with the library code. The erasure of the timer code from the memory device causes erasure of the library code from the memory device. Decrementing, by the processor of the user device, the timer code when the processor executes the library code, the timer code limiting a life duration of the user device executing the application software. An example embodiment includes a method performed by a processor of an application software device. The method including creating, by the processor of the application software device, instructions for installing application software on a user device. The instructions instructing the user device to install library code of the application software in a section of a memory device of the user device, install timer code in the section of the memory device along with the library code, where the erasure of the timer code from the memory device causes erasure of the library code from the memory device, and decrement the timer code when the user device executes the library code, where the timer code limits a life duration of the user device executing the application software. Providing the instructions to the user device for facilitating installation of the application software on the user device. BRIEF DESCRIPTION OF THE DRAWINGS So that the manner in which the above recited features of the present disclosure can be understood in detail, a more particular description of the disclosure, briefly summarized above, may be had by reference to example embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only example embodiments of this disclosure and are therefore not to be considered limiting of its scope, for the disclosure may admit to other equally effective example embodiments. FIG. 1 shows an illustration of an overall network diagram of the system, according to an example embodiment of the present disclosure. FIG. 2 shows an illustration of a computer device diagram of the system, according to an example embodiment of the present disclosure. FIG. 3 shows an illustration of flash memory as the timer decrements, according to an example embodiment of the present disclosure. FIG. 4 shows an illustration of a flowchart for creating the timer, according to an example embodiment of the present disclosure. FIG. 5 shows an illustration of a flowchart for installing the timer, according to an example embodiment of the present disclosure. FIG. 6 shows an illustration of a flowchart for decrementing the timer, according to an example embodiment of the present disclosure. DETAILED DESCRIPTION Various example embodiments of the present disclosure will now be described in detail with reference to the drawings. It should be noted that the relative arrangement of the components and steps, the numerical expressions, and the numerical values set forth in these example embodiments do not limit the scope of the present disclosure unless it is specifically stated otherwise. The following description of at least one example embodiment is merely illustrative in nature and is in no way intended to limit the disclosure, its application, or its uses. Techniques, methods and apparatus as known by one of ordinary skill in the relevant art may not be discussed in detail but are intended to be part of the specification where appropriate. In all the examples illustrated and discussed herein, any specific values should be interpreted to be illustrative and non-limiting. Thus, other example embodiments may have different values. Notice that similar reference numerals and letters refer to similar items in the following figures, and thus once an item is defined in one figure, it is possible that it need not be further discussed for the following fi