Software modification for partial secure memory processing
AssigneeIntel Corporation
InventorsMoshe Maor, Shay Gueron
Life of this patent
Estimating the term…
Abstract
This disclosure is directed to software modification that may be used to prevent software piracy and prevent unauthorized modification of applications. In some embodiments, a software vendor may modify software prior to distribution to a user. The software vendor may extract cutouts from an application to create a modified application. The modified application and the cutouts may be downloaded by a user device. The user device may run the application using the modified application and by executing the cutouts in a secure execution environment that conceals the underlying code in the cutouts.
Claims22
A processor comprising:
- a first logic to process code stored in memory for an application that includes an extracted portion of code to be stored separately in secure memory;
- and
- a second logic to process in a secure execution environment at least a portion of the extracted portion of code stored in the secure memory when the first logic reaches a location of the extracted portion of code, the secure memory restricted to access by the secure execution environment, the secure execution environment concealing content of the extracted portion of binary code while passing resultant data back to the first logic.
A method of securely distributing software, the method comprising:
- extracting portions of code as cutouts from an application to create a modified application that does not include the cutouts;
- encrypting the cutouts using an encryption key that is maintained by a user;
- and
- transmitting the encrypted cutouts and the modified application to the user.
One or more computer-readable media maintaining computer-executable instructions to be executed on one or more processors to perform acts comprising:
- removing portions of code as cutouts from an application to create a modified application;
- encrypting the cutouts using an encryption key;
- and
- transmitting the modified application and the encrypted cutouts to the user.
A system to securely store and execute an application, the system comprising:
- one or more processors;
- exposed memory to store an application executable by the one or more processors;
- secure memory to store code as one or more cutouts that are extracted from the application prior to receipt of the application by the exposed memory, the secure memory limited to access by a secure execution environment using the one or more processors;
- wherein the one or more processors execute the application from the exposed memory;
- and
- when the executing the application from the exposed memory reaches a cutout in the application, executing corresponding code in the cutout in the secure execution environment without revealing contents of the cutout to the exposed memory.
Dependencies are inferred from the claim text.