Selecting application wrapper logic components based on features of a mobile application to be wrapped
First Claim
1. A method comprising:
- performing operations as follows on a processor of an application wrapper computer;
decompiling executable code of an application package to provide a decompiled application package;
tracing a plurality of operational flows through decompiled application code of the decompiled application package, each operational flow associated with at least one application programming interface (API) of the decompiled application package;
identifying features of the application package based on content of the decompiled application package, by obtaining a manifest file from the decompiled application package, and determining resources of a host user device that the application package will use based on permissions contained in the manifest file for at least one API call of the API associated with a request by the application to access the feature;
selecting a set of wrapper logic components from among a library of wrapper logic components based on the features of the application package by;
determining, for each feature, a parameter value representative of a number of operational flows of the application package that contain an API call associated with a request by the application to access the feature; and
excluding from the set of the wrapper logic components at least one of the wrapper logic components of the library that has a parameter value below a predetermined threshold;
disassembling the decompiled application package to provide disassembled code;
inserting wrapper program hooks into the disassembled code to provide modified disassembled code;
assembling the modified disassembled code to provide modified assembled code; and
combining the wrapper logic components of the set with the modified assembled code to form a wrapped application package comprising executable code from the modified assembled code and executable code from the wrapper logic components of the set that intercept calls by the executable code from the modified assembled code.
1 Assignment
0 Petitions
Accused Products
Abstract
Executable code of an application package is decompiled to provide a decompiled application package. Features of the application package are identified based on content of the decompiled application package. A set of wrapper logic components are selected from among a library of wrapper logic components based on the features of the application package. The decompiled application package is disassembled to provide disassembled code. Wrapper program hooks are inserted into the disassembled code to provide modified disassembled code. The modified disassembled code is assembled to provide modified assembled code. The wrapper logic components of the set are combined with the modified assembled code to form a wrapped application package including executable code from the modified assembled code and executable code from the wrapper logic components of the set that intercept calls by the executable code from the modified assembled code.
-
Citations
10 Claims
-
1. A method comprising:
-
performing operations as follows on a processor of an application wrapper computer; decompiling executable code of an application package to provide a decompiled application package; tracing a plurality of operational flows through decompiled application code of the decompiled application package, each operational flow associated with at least one application programming interface (API) of the decompiled application package; identifying features of the application package based on content of the decompiled application package, by obtaining a manifest file from the decompiled application package, and determining resources of a host user device that the application package will use based on permissions contained in the manifest file for at least one API call of the API associated with a request by the application to access the feature; selecting a set of wrapper logic components from among a library of wrapper logic components based on the features of the application package by; determining, for each feature, a parameter value representative of a number of operational flows of the application package that contain an API call associated with a request by the application to access the feature; and excluding from the set of the wrapper logic components at least one of the wrapper logic components of the library that has a parameter value below a predetermined threshold; disassembling the decompiled application package to provide disassembled code; inserting wrapper program hooks into the disassembled code to provide modified disassembled code; assembling the modified disassembled code to provide modified assembled code; and combining the wrapper logic components of the set with the modified assembled code to form a wrapped application package comprising executable code from the modified assembled code and executable code from the wrapper logic components of the set that intercept calls by the executable code from the modified assembled code. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computing device, comprising:
-
a processor; and a memory coupled to the processor and storing computer readable program code that when executed by the processor causes the processor to perform operations comprising; decompiling executable code of an application package to provide a decompiled application package; tracing a plurality of operational flows through decompiled application code of the decompiled application package, each operational flow associated with at least one application programming interface (API) of the decompiled application package; identifying features of the application package based on content of the decompiled application package, by obtaining a manifest file from the decompiled application package, and determining resources of a host user device that the application package will use based on permissions contained in the manifest file for at least one API call of the API associated with a request by the application to access the feature; selecting a set of wrapper logic components from among a library of wrapper logic components based on the features of the application package, by; determining, for each feature, a parameter value representative of a number of operational flows of the application package contain an API call associated with a request by the application to access the feature; and excluding from the set of the wrapper logic components at least one of the wrapper logic components of the library that has a parameter value below a predetermined threshold; disassembling the decompiled application package to provide disassembled code; inserting wrapper calling hooks into the disassembled code to provide modified disassembled code; assembling the modified disassembled code to provide modified assembled code; and combining the wrapper logic components of the set with the modified assembled code to form a wrapped application package comprising executable code from the modified assembled code and executable code from the wrapper logic components of the set that intercept calls by the executable code from the modified assembled code. - View Dependent Claims (9, 10)
-
Specification