IP Library Granted Patent US 10,289,847
Granted Patent B2
US 10,289,847 · App. 15/245,041 · Granted May 14, 2019

Updating virtual memory addresses of target application functionalities for an updated version of application binary code

Inventor: Subrato Kumar De (San Diego, CA)
Assignee: QUALCOMM Incorporated
G06F21/566G06F11/3612G06F12/1009G06F12/12G06F21/53G06F21/562G06F21/563G06F21/565G06F2212/1052G06F2212/65G06F2212/69G06F2221/033G06F2221/034
View Patent ↗
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 10,289,847
App. No.
15/245,041
Granted
May 14, 2019
Kind
B2
Abstract

Systems, methods, and computer programs are disclosed for updating virtual memory addresses of target application functionalities for an updated version of application binary code. The method comprises storing a virtual address mapping table associated with application binary code registered with a high-level operating system. The virtual address mapping table comprises a plurality of virtual addresses mapped to corresponding target application functionalities in the application binary code. In response to receiving an updated version of the application binary code, a pseudo binary code template is selected, which is associated with one or more of the plurality of virtual addresses in the virtual address mapping table. The pseudo binary code template is matched to binary instructions in the updated version of the application binary code. The new virtual addresses corresponding to the matching binary instructions are determined. The virtual address mapping table is updated with the new virtual addresses.

Claims (52)

1. A method for updating virtual memory addresses of target application functionalities for an updated version of application binary code, the method comprising:

storing a plurality of virtual address mapping tables, each virtual address mapping table associated with application binary code of a corresponding one of a plurality of applications registered with a high-level operating system, each virtual address mapping table comprising a plurality of virtual addresses of the application binary code mapped to corresponding target application functionalities in source code of the application;

in response to receiving an updated version of the application binary code, selecting a pseudo binary code template associated with one or more of the plurality of virtual addresses in the virtual address mapping table;

matching the pseudo binary code template to binary instructions in the updated version of the application binary code;

determining the new virtual addresses corresponding to the matching binary instructions; and

updating the virtual address mapping table with the new virtual addresses.

2. The method of claim 1 , wherein the matching the pseudo binary code template to the binary instructions in the updated version of the application binary code comprises: searching a focused region of the updated version of the application binary code.

3. The method of claim 2 , wherein the focused region is defined by base/offset metadata associated with the virtual addresses for the target application functionalities.

4. The method of claim 3 , wherein the base/offset metadata is stored in the virtual address mapping table.

5. The method of claim 1 , wherein the virtual address mapping table comprises base/offset metadata associated with the one or more of the plurality of virtual addresses for the target application functionalities.

6. The method of claim 5 , wherein the base/offset metadata defines a focused region of the updated version of the application binary code for searching for the matching binary instructions.

7. The method of claim 1 , wherein the pseudo binary code template comprises pseudo code instructions equivalent to binary code instructions related to one or more of the target application functionalities.

8. A system for updating virtual memory addresses of target application functionalities for an updated version of application binary code, the system comprising:

means for storing a plurality of virtual address mapping tables, each virtual address mapping table associated with application binary code of a corresponding one of a plurality of applications registered with a high-level operating system, each virtual address mapping table comprising a plurality of virtual addresses of the application binary code mapped to corresponding target application functionalities in source code of the application;

means for selecting, in response to receiving an updated version of the application binary code, a pseudo binary code template associated with one or more of the plurality of virtual addresses in the virtual address mapping table;

means for matching the pseudo binary code template to binary instructions in the updated version of the application binary code;

means for determining the new virtual addresses corresponding to the matching binary instructions; and

means for updating the virtual address mapping table with the new virtual addresses.

9. The system of claim 8 , wherein the means for matching the pseudo binary code template to the binary instructions in the updated version of the application binary code comprises: means for searching a focused region of the updated version of the application binary code.

10. The system of claim 9 , wherein the focused region is defined by base/offset metadata associated with the virtual addresses for the target application functionalities.

11. The system of claim 10 , wherein the base/offset metadata is stored in the virtual address mapping table.

12. The system of claim 8 , wherein the virtual address mapping table comprises base/offset metadata associated with virtual addresses with the one or more of the plurality of virtual addresses for the target application functionalities.

13. The system of claim 12 , wherein the base/offset metadata defines a focused region of the updated version of the application binary code for searching for the matching binary instructions.

14. The system of claim 8 , wherein the pseudo binary code template comprises pseudo code instructions equivalent to binary code instructions representing one or more of the target application functionalities.

15. A computer program embodied in a non-transitory computer readable medium and executed by a processor for updating virtual memory addresses of target application functionalities for an updated version of application binary code, the computer program comprising logic configured:

store a plurality of virtual address mapping tables, each virtual address mapping table associated with application binary code of a corresponding one of a plurality of applications registered with a high-level operating system, each virtual address mapping table comprising a plurality of virtual addresses of the application binary code mapped to corresponding target application functionalities in source code of the application;

in response to receiving an updated version of the application binary code, select a pseudo binary code template associated with one or more of the plurality of virtual addresses in the virtual address mapping table;

match the pseudo binary code template to binary instructions in the updated version of the application binary code;

determine the new virtual addresses corresponding to the matching binary instructions; and

update the virtual address mapping table with the new virtual addresses.

16. The computer program of claim 15 , wherein the logic configured to match the pseudo binary code template to the binary instructions in the updated version of the application binary code comprises: logic configured to search a focused region of the updated version of the application binary code.

17. The computer program of claim 16 , wherein the focused region is defined by base/offset metadata associated with the virtual addresses for the target application functionalities.

18. The computer program of claim 17 , wherein the base/offset metadata is stored in the virtual address mapping table.

19. The computer program of claim 15 , wherein the virtual address mapping table comprises base/offset metadata associated with the one or more of the plurality of virtual addresses for the target application functionalities.

20. The computer program of claim 19 , wherein the base/offset metadata defines a focused region of the updated version of the application binary code for searching for the matching binary instructions.

21. The computer program of claim 15 , wherein the pseudo binary code template comprises pseudo code instructions equivalent to binary code instructions representing one or more of the target application functionalities.

22. A system for updating virtual memory addresses of target application functionalities for an updated version of application binary code, the system comprising:

a processing device configured to execute application binary code;

a high-level operating system (HLOS) comprising a plurality of virtual address mapping tables, each virtual address mapping table associated with application binary code of a corresponding one of a plurality of applications, each virtual address mapping table comprising a plurality of virtual addresses of the application binary code mapped to corresponding target application functionalities in source code of the application; and

a controller for updating the virtual address mapping table in response to receiving an updated version of the application binary code, the controller comprising logic configured to:

select a pseudo binary code template associated with one or more of the plurality of virtual addresses in the virtual address mapping table;

match the pseudo binary code template to binary instructions in the updated version of the application binary code;

determine the new virtual addresses corresponding to the matching binary instructions; and

update the virtual address mapping table with the new virtual addresses.

23. The system of claim 22 , wherein the controller matches the pseudo binary code template to the binary instructions in the updated version of the application binary code comprises by searching a focused region of the updated version of the application binary code.

24. The system of claim 23 , wherein the focused region is defined by base/offset metadata associated with the virtual addresses for the target application functionalities.

25. The system of claim 24 , wherein the base/offset metadata is stored in the virtual address mapping table.

26. The system of claim 1 , wherein the virtual address mapping table comprises base/offset metadata associated with the one or more of the plurality of virtual addresses for the target application functionalities.

27. The system of claim 26 , wherein the base/offset metadata defines a focused region of the updated version of the application binary code for searching for the matching binary instructions.

28. The system of claim 22 , wherein the pseudo binary code template comprises pseudo code instructions equivalent to binary code instructions representing one or more of the target application functionalities.

29. The system of claim 22 , wherein the HLOS is configured to detect the target application functionalities, during execution of the updated version of the application binary code, when one or more of the new virtual addresses corresponding to the target application functionalities are executed.

30. The system of claim 22 , wherein the application binary code comprises one of a secure web application and a web browser.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 24, 2017
From: DE, SUBRATO KUMAR
To: QUALCOMM INCORPORATED
Reel/Frame 041735/0248 →
Continuity (2)
Provisional Application 62368223 · Jul 29, 2016
Related Publication 20180032441A1 · Feb 1, 2018
Cited By (1)
US 12,436,804