IP Library › Granted Patent US 11,782,687
Granted Patent B1
US 11,782,687 · App. 18/048,734 · Granted Oct 10, 2023

Shrinking executable files based on function analysis

Inventor: Carmit Sahar (Tel Aviv, IL)
Assignee: Aurora Labs Ltd.
G06F8/4435G06F8/427
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 11,782,687
App. No.
18/048,734
Granted
Oct 10, 2023
Kind
B1
Abstract

Disclosed herein are techniques for reducing sizes of executable files. Techniques include identifying an executable file having a plurality of functions; determining, by parsing the executable file or a code structure representing the executable file, that a first and second function each comprise a common block; identifying a third function configured to perform the common block; changing the first and second functions by: removing the common block from at least one of the first or second functions; and inserting a call to the third function into at least one of the first or second functions; and updating the executable file by: replacing, in the executable file, at least one of the first or second functions with at least one of the updated first or second functions; and adding the third function to the executable file.

Claims (42)

1. A non-transitory computer-readable medium including instructions that, when executed by at least one processor, cause the at least one processor to perform operations for reducing sizes of executable files, the operations comprising:

identifying an executable file having a plurality of functions;

determining, by parsing the executable file or a code structure representing the executable file, that a first and second function each comprise a common block;

identifying a third function configured to implement a functional effect of the common block;

changing the first and second functions by:

removing the common block from at least one of the first or second functions; and

inserting a call to the third function into at least one of the first or second functions; and

updating the executable file by:

replacing, in the executable file, at least one of the first or second functions with at least one of the changed first or second functions; and

adding the third function to the executable file.

2. The non-transitory computer-readable medium of claim 1 , wherein determining that the first and second function each comprise the common block comprises determining an identifier associated with the common block.

3. The non-transitory computer-readable medium of claim 2 , wherein the identifier comprises a combination of characters.

4. The non-transitory computer-readable medium of claim 3 , wherein the identifier is an expression.

5. The non-transitory computer-readable medium of claim 1 , wherein determining that the first and second function each comprise the common block comprises determining a similar effect caused by the common block.

6. The non-transitory computer-readable medium of claim 5 , wherein determining the similar effect comprises performing, on the first and second functions, at least one of a static or dynamic analysis.

7. The non-transitory computer-readable medium of claim 1 , wherein determining that the first and second function each comprise a common block comprises determining that the first and second function each comprise a common command or common sequence of commands.

8. The non-transitory computer-readable medium of claim 1 , wherein the common block is identified according to a machine learning model.

9. The non-transitory computer-readable medium of claim 1 , wherein the third function is generated based on a structure of the first and second functions.

10. The non-transitory computer-readable medium of claim 1 , wherein the executable file is at least one of:

configured to execute on a controller prior to the updating; or

configured to execute on a controller after the updating.

11. A computer-implemented method for reducing sizes of executable files, comprising:

identifying an executable file having a plurality of functions;

determining, by parsing the executable file or a code structure representing the executable file, that a first and second function each comprise a common block;

identifying a third function configured to implement a functional effect of the common block;

changing the first and second functions by:

removing the common block from at least one of the first or second functions; and

inserting a call to the third function into at least one of the first or second functions; and

updating the executable file by:

replacing, in the executable file, at least one of the first or second functions with at least one of the changed first or second functions; and

adding the third function to the executable file.

12. The computer-implemented method of claim 11 , wherein determining that the first and second function each comprise the common block comprises determining an identifier associated with the common block.

13. The computer-implemented method of claim 12 , wherein the identifier comprises a combination of characters.

14. The computer-implemented method of claim 13 , wherein the identifier is an expression.

15. The computer-implemented method of claim 11 , wherein determining that the first and second function each comprise the common block comprises determining a similar effect caused by the common block.

16. The computer-implemented method of claim 15 , wherein determining the similar effect comprises performing, on the first and second functions, at least one of a static or dynamic analysis.

17. The computer-implemented method of claim 11 , wherein determining that the first and second function each comprise a common block comprises determining that the first and second function each comprise a common command or common sequence of commands.

18. The computer-implemented method of claim 11 , wherein the common block is identified according to a machine learning model.

19. The computer-implemented method of claim 11 , wherein the third function is generated based on a structure of the first and second functions.

20. The computer-implemented method of claim 11 , wherein the executable file is at least one of:

configured to execute on a controller prior to the updating; or

configured to execute on a controller after the updating.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2022
From: SAHAR, CARMIT
To: AURORA LABS LTD.
Reel/Frame 061501/0668 →