Data protection method and device
DCFirst Claim
Patent Images
1. A computing device for running application software, comprising:
- memory designed to store data in non transitory form;
an operating system;
wherein said memory stores an application software;
wherein said application software comprises (1) a memory scheduler code resource and (2) other code resources;
wherein said application software is designed to call said memory scheduler code resource;
wherein said memory scheduler code resource, when called, functions to shuffle said other code resources in said memory; and
wherein said memory scheduler code resource is designed to modify a stack frame in said memory.
1 Assignment
Litigations
1 Petition
Accused Products
Abstract
An apparatus and method for encoding and decoding additional information into a digital information in an integral manner. More particularly, the invention relates to a method and device for data protection.
-
Citations
50 Claims
-
1. A computing device for running application software, comprising:
-
memory designed to store data in non transitory form; an operating system; wherein said memory stores an application software; wherein said application software comprises (1) a memory scheduler code resource and (2) other code resources; wherein said application software is designed to call said memory scheduler code resource; wherein said memory scheduler code resource, when called, functions to shuffle said other code resources in said memory; and wherein said memory scheduler code resource is designed to modify a stack frame in said memory. - View Dependent Claims (3, 4, 5, 6, 7, 8, 9, 25, 26, 27, 28)
-
-
2. A system for executing an application on a computer system, comprising:
-
a computer system comprising a processor for processing instructions and memory designed to store data in non transitory form; a software application comprising a plurality of executable code resources loaded in said memory; said memory storing a plurality of addresses, each one of said plurality of addresses associated with an address of a corresponding one of said plurality of executable code resources; wherein a first one of said plurality of executable code resources is designed to relocate at least each of the other ones of said plurality of executable code resources to different addresses within said memory during execution of said software application, using said processor; and wherein said first one of said plurality of executable code resources is designed to modify a stack frame in said memory. - View Dependent Claims (18, 19, 20, 30, 31, 32, 33, 34, 35)
-
-
10. A system for executing application software code, comprising:
-
a memory designed to store data in non transitory form, and storing executable code resources; wherein said executable code resources comprise a memory scheduler and other executable code resources; wherein said memory scheduler is designed to shuffle said other executable code resources in said memory; and wherein said memory scheduler is designed to modify a stack frame in said memory. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
21. A system comprising:
-
a processor; a memory designed to store data in non transitory form; wherein said processor is coupled to said memory; wherein said system is configured to load a program comprising code resources into said memory and to shuffle at least one code resource into a different location in said memory after said program has been loaded into said memory; and wherein one of said code resources is designed to modify a stack frame in said memory.
-
-
22. A system comprising:
-
a processor designed to process instructions; a memory designed to store data in non transitory form; wherein said processor is coupled to said memory; wherein said system is configured to load an executable program comprising at least two code resources into said memory and to randomize the location of at least one of the at least two code resources in the said memory, using said processor; and wherein one of the at least two code resources is designed to modify a stack frame in said memory.
-
-
23. A system for executing a program comprising code, comprising:
-
a processor designed to process instructions; a memory designed to store data in non transitory form; wherein said processor is coupled to said memory; a memory scheduler configured to randomize location of code defining a code resource, in said memory, using said processor; and wherein said memory scheduler is configured to modify a stack frame in said memory. - View Dependent Claims (24)
-
-
29. A system comprising:
-
a processor; a memory coupled to said processor; wherein said memory is designed to store data in non transitory form; wherein said system is configured to load a program comprising code resources into said memory and to shuffle at least a subset of said code resources into a different location in said memory after said program has been loaded into said memory; and wherein one of said code resources is configured to modify a stack frame in said memory.
-
-
36. A system for protecting a software application, said software application comprising a plurality of executable code resources, said system comprising:
-
a processor; memory for storing data in non transitory form; wherein said processor is coupled to said memory for transmitting data there between; wherein, when executing said software application, said system is configured to store in said memory an original plurality of code resource addresses; wherein, when executing said software application, said system is configured to store a plurality of executable code resources for executing said software application; wherein each one of said original plurality of code resource addresses specifies an address in said memory of one of said plurality of executable code resources; wherein, when executing said software application, said system is configured to (1) relocate each one of said plurality of executable code resources in said memory so that each one of said plurality of executable code resources is specified by each one of a new plurality of code resource addresses and (2) store in said memory each one of said new plurality of code resource addresses; and wherein one of said plurality of executable code resources is configured to modify a stack frame in said memory. - View Dependent Claims (37, 38, 39, 40, 41, 42, 43, 44, 45, 46)
-
-
47. A computer program product storing in non-transitory form instructions defining a software program, which instructions, when loaded into a computer system instruct the computer system to perform the following steps:
-
load said program into memory of said computer system; wherein said software program, as loaded into memory, comprises a plurality of code resources; shuffle locations in said memory of at least a subset of said plurality of code resources; and wherein said shuffle comprises one of said plurality of code resources modifying a stack frame in said memory. - View Dependent Claims (48, 49, 50)
-
Specification