IP Library Patent Application 15177067
Patent Application
App. No. 15/177,067

DEVICE AND METHOD FOR PROTECTION OF IOS SOFTWARE MODULES

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
15/177,067
Abstract

Protecting a module intended to be executed by an executing device that has an operating system and that is either genuine or jailbroken is described. An application provider device obtains a first version of the module intended to be executed on a genuine executing device, the first version implementing a first software protection technique allowed by the operating system on the genuine device, obtains a second version of the application intended to be executed on a jailbroken device, the second version implementing a second software protection technique not allowed by the operating system on the genuine device, obtains a jailbreak detection function configured to determine whether a device executing the jailbreak function is genuine or jailbroken, and to call the first version of the module in case the executing device is genuine and call the second version of the module in case the executing device is jailbroken and generates an application package including the jailbreak detection function, the first version of the module and the second version of the module, and that is output by an interface.

Claims (30)

1 . An application provider device for protecting a module intended to be executed by an executing device that has an operating system and that is either genuine or jailbroken, the application provider device comprising:

a processing unit configured to:

obtain a first version of the module intended to be executed on a genuine executing device, the first version implementing a first software protection technique allowed by the operating system on the genuine device;

obtain a second version of the module intended to be executed on a jailbroken device, the second version implementing a second software protection technique not allowed by the operating system on the genuine device;

obtain a jailbreak detection function configured to determine whether the executing device is genuine or jailbroken, and to call the first version of the module in case the executing device is genuine and call the second version of the module in case the executing device is jailbroken; and

generate an application package comprising the jailbreak detection function, the first version of the module and the second version of the module; and

an interface configured to output the application package.

2 . The application provider device of claim 1 , wherein the processing unit is further configured to use the first software protection technique to protect the first version of the module.

3 . The application provider device of claim 2 , wherein the first software protection technique comprises at least one of control flow graph flattening and verification that the executing device is genuine.

4 . The application provider device of claim 1 , wherein the processing unit is further configured to use the second software protection technique to protect the second version of the module.

5 . The application provider device of claim 4 , wherein the second software protection technique is dynamic ciphering.

6 . A method for protecting a module intended to be executed by an executing device that has an operating system and that is either genuine or jailbroken, the method comprising at an application provider device:

obtaining, by a processing unit, a first version of the module intended to be executed on a genuine executing device, the first version implementing a first software protection technique allowed by the operating system on the genuine device;

obtaining, by the processing unit, a second version of the module intended to be executed on a jailbroken device, the second version implementing a second software protection technique not allowed by the operating system on the genuine device;

obtaining, by the processing unit, a jailbreak detection function configured to determine whether the executing device is genuine or jailbroken, and to call the first version of the module in case the executing device is genuine and call the second version of the module in case the executing device is jailbroken;

generating, by the processing unit, an application package comprising the jailbreak detection function, the first version of the module and the second version of the module; and

outputting, by an interface, the application package.

7 . The method of claim 6 , further comprising using, by the processing unit, the first software protection technique to protect the first version of the module.

8 . The method of claim 7 , wherein the first software protection technique comprises at least one of control flow graph flattening and verification that the executing device is genuine.

9 . The method of claim 6 , further comprising using, by the processing unit, the second software protection technique to protect the second version of the module.

10 . The method of claim 9 , wherein the second software protection technique is dynamic ciphering.

11 . Computer program product which is stored on a non-transitory computer readable medium and comprises:

a first version of a module intended to be executed on a genuine executing device, the first version implementing a first software protection technique allowed by an operating system on the genuine device;

a second version of the module intended to be executed on a jailbroken device, the second version implementing a second software protection technique not allowed by the operating system on the genuine device; and

a jailbreak detection function that, when executed by a hardware processor causes the hardware processor to determine whether a device executing the jailbreak function is genuine or jailbroken, and to call the first version of the module in case the executing device is genuine and call the second version of the module in case the executing device is jailbroken.

12 . An executing device having an operating system, the executing device comprising:

memory storing a first version of a module intended to be executed on a genuine executing device and implementing a first software protection technique allowed by the operating system on the genuine device, a second version of the module intended to be executed on a jailbroken device and implementing a second software protection technique not allowed by the operating system on the genuine device, and a jailbreak detection function configured to determine whether the executing device the jailbreak function is genuine or jailbroken; and

a processing unit configured to:

execute the jailbreak detection function to determine whether the executing device is genuine or jailbroken; and

call the first version of the module in case it is determined that the executing device is genuine and call the second version of the module in case it is determined that the executing device is jailbroken.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 5, 2020
From: THOMSON LICENSING SAS
To: INTERDIGITAL CE PATENT HOLDINGS
Reel/Frame 052580/0494 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2019
From: SALMON-LEGAGNEUR, CHARLES; MONSIFROT, ANTOINE
To: THOMSON LICENSING
Reel/Frame 049912/0602 →