Generation of api call graphs from static disassembly
US-2016274909-A1 · Sep 22, 2016 · US
US2016378447A1 · US · A1
| Field | Value |
|---|---|
| Publication number | US-2016378447-A1 |
| Application number | US-201514747757-A |
| Country | US |
| Kind code | A1 |
| Filing date | Jun 23, 2015 |
| Priority date | Jun 23, 2015 |
| Publication date | Dec 29, 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.
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.
Opening claim text (preview).
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; identifying features of the application package based on content of the decompiled application package; selecting a set of wrapper logic components from among a library of wrapper logic components based on the features of the application package; 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. 2 . The method of claim 1 , wherein: identifying features of the application package based on content of the decompiled application package, comprises determining resources of a host user device that the application package will use; and selecting the set of the wrapper logic components from among the library of wrapper logic components based on the features of the application package, comprises excluding from the set of the wrapper logic components at least one of the wrapper logic components of the library that is directed to using a resource that is not among the resources of the host user device that the application package will use. 3 . The method of claim 2 , wherein excluding from the set of the wrapper logic components at least one of the wrapper logic components of the library that is directed to using a resource that is not among the resources of the host user device that the application package will use, comprises: excluding from the set of the wrapper logic components any of the wrapper logic components of the library that are directed to using a resource that is not among the resources of the host user device that the application package will use. 4 . The method of claim 2 , wherein selecting the set of the wrapper logic components from among the library of wrapper logic components based on the features of the application package, further comprises: comparing the resources of the host user device that the application package will use to a list of prohibited resources; and excluding from the set of the wrapper logic components any of the wrapper logic components of the library that are directed to using a resource that is among the list of prohibited resources. 5 . The method of claim 2 , wherein identifying features of the application package based on content of the decompiled application package, comprises: obtaining a manifest file from the decompiled application package; and determining the resources of the host user device that the application package will use based on content of the manifest file. 6 . The method of claim 5 , wherein determining the resources of the host user device that the application package will use based on content of the manifest file, comprises: determining the resources of the host user device that the application package will use based on permissions contained in the manifest file that the application requests to access. 7 . The method of claim 6 , wherein determining the resources of the host user device that the application package will use based on the permissions contained in the manifest file that the application requests to access, comprises: identifying associations between labels identified by the permissions to resources that have been defined as being associated with wrapper logic components of the library. 8 . The method of claim 6 , wherein selecting the set of the wrapper logic components from among the library of wrapper logic components based on the features of the application package, further comprises: comparing the permissions contained in the manifest file that the application requests to access to a list of prohibited permissions; and excluding from the set of the wrapper logic components any of the wrapper logic components of the library that request to access a permission that is among the list of prohibited permissions. 9 . The method of claim 1 , wherein identifying features of the application package based on content of the decompiled application package, comprises: tracing operational flows through decompiled application code of the decompiled application package; and identifying the features of the application package based on comparison of the operational flows to defined rules. 10 . The method of claim 9 , wherein: identifying the features of the application package based on comparison of the operational flows to defined rules, comprises, for each of the features, counting the operational flows that will use the feature; and selecting the set of wrapper logic components from among the library of wrapper logic components based on the features of the application package, comprises, excluding from the set of the wrapper logic components any of the wrapper logic components of the library that is directed to any of the features that does not have a count that satisfies a rule for a threshold number of the operational flows that will use the feature. 11 . The method of claim 1 , wherein identifying features of the application package based on content of the decompiled application package, comprises: identifying characteristics of application interfaces of the decompiled application code of the decompiled application package; and identifying the features of the application package based on the characteristics of the application interfaces of the decompiled application code of the decompiled application package. 12 . The method of claim 1 , wherein: the library comprises a software development kit library; and selecting the set of wrapper logic components from among the library of wrapper logic components based on the features of the application package, comprises: generating a modified software development kit library containing the set of wrapper logic components selected from among the software development kit library of wrapper logic components, and excluding from the modified software development kit library at least one of the wrapper logic components of the software development kit library that is directed to a feature that is not among the features of the application package. 13 . The method of claim 12 , wherein combining the wrapper logic components of the set with the modified assembled code to form the wrapped application package, comprises: retrieving all of the wrapper logic components of the set from the modified software development kit library for combining with the modified assembled code to form the wrapped application package. 14 . 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; identifying features of the application package based on content of the decompiled application package; selecting a set of wrapper logic components from among a library of wrapper logic components based on the features of the application package; disassembling the decompiled application package to provide disassembled code; insert
Test management · CPC title
Decompilation; Disassembly · CPC title
Object-oriented languages · CPC title
Test or assess software · CPC title
by adding security routines or objects to programs · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.