Methods, systems and machine-readable media for providing security services
US-2015371045-A1 · Dec 24, 2015 · US
US2016239671A1 · US · A1
| Field | Value |
|---|---|
| Publication number | US-2016239671-A1 |
| Application number | US-201615043536-A |
| Country | US |
| Kind code | A1 |
| Filing date | Feb 13, 2016 |
| Priority date | Feb 13, 2015 |
| Publication date | Aug 18, 2016 |
| Grant date | — |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
An application comprising a code part is protected in a device including a processor that encrypts the code part to be protected to obtain a protected part using an encryption key, replaces the code part to be protected by valid instructions different from the code part to be protected, stores information necessary for decryption of the protected part so that the information may be retrieved by an unprotection function, stores the unprotection function so that the unprotection function can be called by a calling function, and inserts calls to the unprotection function and a protection function around a call to the code part to be protected in the application, the protection function being configured to protect the code part. When executed, a call to the unprotection function decrypts the protected part which is written over the valid instructions where it is executed.
Opening claim text (preview).
1 . A device for protecting an application comprising code parts to be protected, the device comprising: an interface configured to receive the application and to output a protected application; and a processing unit configured to: encrypt the code parts to be protected to obtain protected parts using an encryption key; replace in the application the code parts to be protected by valid instructions different from the code part to be protected; store information necessary for decryption of the protected parts so that the information may be used by an unprotection function configured to decrypt protected parts; store the unprotection function and a protection function so that the unprotection function and the protection function can be called by calling functions; and insert calls to the unprotection function and the protection function around each call to the code parts to be protected in the application, the protection function configured to protect the code parts. 2 . A method for protecting an application comprising code parts to be protected, the method comprising in a device comprising a processor: encrypting the code parts to be protected to obtain protected parts using an encryption key; replacing in the application the code parts to be protected by valid instructions different from the code part to be protected; storing information necessary for decryption of the protected parts so that the information may be used by an unprotection function configured to decrypt protected parts; storing the unprotection function and a protection function so that the unprotection function and the protection function can be called by calling functions; and inserting calls to the unprotection function and the protection function around each call to the code parts to be protected in the application, the protection function configured to protect the code parts. 3 . The method of claim 2 , wherein the information necessary for decryption of the protected parts is stored in a non-executable part of the application. 4 . The method of claim 2 , further comprising storing the protection function in the application so that the protection function can be called by a calling function, the protection function configured to overwrite a decrypted protected part in the memory by valid instructions. 5 . The method of claim 2 , wherein the unprotection function is stored in the application. 6 . The method of claim 2 , further comprising storing the protected parts in a non-executable part of the application. 7 . The method of claim 2 , wherein the information necessary for decryption of a protected part comprises an encryption seed for the protected part, an offset of the code part to be protected and an identifier of a class name or a function name of the protected part. 8 . The method of claim 2 , wherein the application is implemented as Dalvik executable code. 9 . A method for executing an application comprising at least one protected part, the method comprising in a device comprising memory and a processor executing the application: calling, using a function of the application, an unprotection function with an identifier of the protected part; retrieving information necessary for decryption of the protected part; decrypting the protected part using the information to obtain an unprotected part; overwriting in the memory, instructions in the application with the unprotected part; executing the unprotected part in the memory; and protecting the unprotected part in the memory. 10 . A device for executing an application comprising at least one protected part, the device comprising: memory storing the application; and a processor configured to: execute a function of the application to call an unprotection function of the application with an identifier of the protected part; retrieve information necessary for decryption of the protected part; decrypt the protected part using the information to obtain an unprotected part of the application; overwrite, in the memory, instructions in the application with the unprotected part; execute the unprotected part of the application in the memory; and protect the unprotected part in the memory. 11 . A non-transitory storage medium on which is stored instructions of an application that when executed by a processor causes the processor to: call an unprotection function with an identifier of a protected part of the application; retrieve information necessary for decryption of the protected part of the application; decrypt the protected part using the information to obtain an unprotected part of the application; overwrite, in the memory, instructions in the application with the unprotected part of the application; execute the unprotected part of the application in the memory; and protect the unprotected part of the application in the memory.
by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code · CPC title
Version control (security arrangements therefor G06F21/57); Configuration management · CPC title
Providing cryptographic facilities or services · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.