Method and device for protecting an application and method and device for executing a protected application thus protected

US2016239671A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016239671-A1
Application numberUS-201615043536-A
CountryUS
Kind codeA1
Filing dateFeb 13, 2016
Priority dateFeb 13, 2015
Publication dateAug 18, 2016
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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.

Assignees

Inventors

Classifications

  • G06F21/125Primary

    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

  • G06F21/602Primary

    Providing cryptographic facilities or services · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2016239671A1 cover?
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…
Who is the assignee on this patent?
Thomson Licensing
What technology area does this patent fall under?
Primary CPC classification G06F21/125. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Aug 18 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).