Co-existential wrapping system for mobile applications

US2016283207A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016283207-A1
Application numberUS-201514670604-A
CountryUS
Kind codeA1
Filing dateMar 27, 2015
Priority dateMar 27, 2015
Publication dateSep 29, 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.

A computer program product according to some embodiments causes a processor to perform operations including disassembling executable code of an application program to provide disassembled code, identifying first wrapping code in the disassembled code, receiving second wrapping code, generating a consolidated application wrapper that manages operation of both the first wrapping code and the second wrapping code, inserting the second wrapping code and the consolidated application wrapper into the disassembled code to form modified disassembled code, and assembling the modified disassembled code to form modified executable code.

First claim

Opening claim text (preview).

What is claimed is: 1 . A computer program product, comprising: a non-transitory computer readable storage medium storing computer readable program code which when executed by a processor of an electronic device causes the processor to perform operations comprising: disassembling executable code of an application program to provide disassembled code; identifying first wrapping code in the disassembled code; receiving second wrapping code; generating a consolidated application wrapper that manages operation of both the first wrapping code and the second wrapping code; inserting the second wrapping code and the consolidated application wrapper into the disassembled code to form modified disassembled code; and assembling the modified disassembled code to form modified executable code. 2 . The computer program product of claim 1 , wherein inserting the second wrapping code into the disassembled code comprises identifying a conflict between the first wrapping code and the second wrapping code and inserting aggregating code into the disassembled code that resolves the identified conflict. 3 . The computer program product of claim 2 , wherein identifying the conflict between the first wrapping code and the second wrapping code comprises determining that the first wrapping code and the second wrapping code are configured to intercept a first application programming interface call by the disassembled code, and wherein the aggregating code intercepts the first application programming interface call by the disassembled code and responsively calls both the first wrapping code and the second wrapping code. 4 . The computer program product of claim 1 , wherein the operations further comprise: decompiling the executable code before disassembling the executable code, wherein decompiling the executable code comprises extracting bytecode from the executable code and extracting application resources from the executable code. 5 . The computer program product of claim 4 , wherein the operations further comprise: converting the modified executable code into modified bytecode. 6 . The computer program product of claim 4 , wherein the operations further comprise: compiling a modified application using the modified bytecode and the application resources. 7 . The computer program product of claim 6 , wherein compiling the modified application comprises compiling the modified application using a software library associated with the second wrapping code. 8 . The computer program product of claim 1 , wherein the wrapping code comprises executable code that monitors and/or controls behavior of the application program by intercepting one or more application programming interface calls by the application program, executing monitoring and/or control code in response to the application programming interface call, and thereafter returning control to the application program. 9 . The computer program product of claim 1 , wherein identifying first wrapping code in the disassembled code comprises receiving information about a software library associated with the first wrapping code and analyzing the disassembled code to determine where in the disassembled code the software library is referenced. 10 . The computer program product of claim 1 , wherein the second wrapping code and the consolidated application wrapper are inserted into the disassembled code without altering operation of the first wrapping code. 11 . A computer program product, comprising: a non-transitory computer readable storage medium storing computer readable program code which when executed by a processor of an electronic device causes the processor to perform operations comprising: disassembling executable code of an application program to provide disassembled code; receiving first and second wrapping code; analyzing the first and second wrapping code to identify conflicts between the first and second wrapping code; automatically generating a consolidated application wrapper that enables the first and second wrapping code to coexist without conflict in the application program; inserting the first and second wrapping code and the consolidated application wrapper into the disassembled code to form modified disassembled code; and assembling the modified disassembled code to form modified executable code. 12 . The computer program product of claim 11 , wherein the first wrapping code and the second wrapping code are configured to intercept a first application programming interface call by the disassembled code, and wherein the consolidated application wrapper intercepts the first application programming interface call by the disassembled code and responsively calls both the first wrapping code and the second wrapping code. 13 . The computer program product of claim 11 , wherein the operations further comprise: decompiling the executable code before disassembling the executable code, wherein decompiling the executable code comprises extracting bytecode from the executable code and extracting application resources from the executable code. 14 . The computer program product of claim 13 , wherein the operations further comprise: converting the modified executable code into modified bytecode. 15 . The computer program product of claim 14 , wherein the operations further comprise: compiling a modified application using the modified bytecode and the application resources. 16 . The computer program product of claim 15 , wherein compiling the modified application comprises compiling the modified application using a first software library associated with the first wrapping code and a second software library associated with the second wrapping code. 17 . The computer program product of claim 11 , wherein the first wrapping code and the second wrapping code comprise executable code that monitors and/or controls behavior of the application program by intercepting one or more application programming interface calls by the application program, executing monitoring and/or control code in response to the application programming interface call, and thereafter returning control to the application program. 18 . The computer program product of claim 11 , wherein the first wrapping code, the second wrapping code and the consolidated application wrapper are inserted into the disassembled code without altering operation of the first wrapping code or the second wrapping code. 19 . A computing device, comprising: a processor; and a memory coupled to the processor; wherein the memory includes a wrapped application, the wrapped application including a consolidated application wrapper that encloses application code, first wrapper logic and second wrapper logic, wherein the consolidated application wrapper manages operation of both the first wrapper logic and the second wrapper logic. 20 . The computing device of claim 19 , wherein the consolidated application wrapper intercepts an application programming interface call from the application code and invokes the first wrapper logic and the second wrapper logic in response to the application programming interface call.

Assignees

Inventors

Classifications

  • G06F8/41Primary

    Compilation · CPC title

  • Adapting program code to run in a different environment; Porting · CPC title

  • Decompilation; Disassembly · CPC title

  • Binary to binary · 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 US2016283207A1 cover?
A computer program product according to some embodiments causes a processor to perform operations including disassembling executable code of an application program to provide disassembled code, identifying first wrapping code in the disassembled code, receiving second wrapping code, generating a consolidated application wrapper that manages operation of both the first wrapping code and the seco…
Who is the assignee on this patent?
Ca Inc
What technology area does this patent fall under?
Primary CPC classification G06F8/41. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Sep 29 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 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).