Method and apparatus for software protection via multiple-route execution
AssigneeRainbow Technologies, Inc.
InventorLaszlo Elteto
Life of this patent
Estimating the term…
Abstract
A method, apparatus, and article of manufacture for protecting a shelled computer program with a startup code featuring multiple-route execution. In one embodiment, the startup code comprises a sequence of tasks, collectively executing a startup code, wherein one or more of the tasks is selectably performed by one of a plurality of task code variations as selected by a selection code associated with the task.
Claims37
A startup code for protecting a shelled computer program, comprising:
- a sequence of tasks collectively executing the startup code;
- and
- wherein at least one task is selectably performed by a selected one of a plurality of task code variations as selected by a selection code associated with the at least one task.
A startup code for protecting a shelled computer program, comprising:
- a plurality N of startup code tasks T1, T2, . . . , TN to be performed to execute the startup code;
- a plurality K of startup task code variations Ti,1, Ti,2, . . . , Ti,K for at least one Ti of the plurality startup code tasks T1, T2, . . . , TN;
- and
- a selection routine Si for the at least one Ti of the plurality of startup code tasks T1, T2, . . . , TN, the selection routine Si for selecting at least one Ti,j of the K plurality of code variations Ti,1, Ti,2, . . . , Ti,K from among the plurality of code variations Ti,1, Ti,2, . . . , Ti,K.
A method of generating a secure startup code for use in generating a shelled application program, comprising the steps of:
- generating a plurality N of startup task routines T1, T2, . . . ,TN collectively forming the startup code;
- generating a plurality K of startup task routine variations Ti,1, Ti,2, . . . , Ti,K for a chosen startup task routine Ti of the startup task routines T1, T2, . . . , TN;
- generating a selection routine Si for the chosen startup task routine Ti of the startup task routines T1, T2, . . . , TN, each selection routine Si for selecting at least one of the startup task code variations Ti,1, Ti,2, . . . , Ti,K to perform the chosen startup task routine Ti;
- and
- assembling the secure startup code as a combination of the plurality of task routines T1, T2, . . . , TN for the unchosen ones of the plurality of task routines, and the selection routine Si and plurality of task routine variations Ti,1, Ti,2, . . . , Ti,K for each of the chosen task routine Ti of the plurality task routines T1, T2, . . . , TN.
A method of executing a secure startup code, comprising the steps of:
- selecting a startup task code variation from among a plurality of startup task code variations, each startup code task variation performing a startup code task differently than the other startup code task variations, the startup code task belonging to a sequence of startup code tasks collectively performing the startup code;
- and
- executing the selected startup task code variation.
Dependencies are inferred from the claim text.