IP Library Granted Patent US 10,223,413
Granted Patent B2
US 10,223,413 · App. 15/364,219 · Granted Mar 5, 2019

Capturing components of an application using a static post-installation analysis of the system

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,223,413
App. No.
15/364,219
Granted
Mar 5, 2019
Kind
B2
Abstract

A management agent operates transparently in the background on each endpoint computing device that needs to be managed. The agent performs a static analysis of the system on the endpoint computing device on which it is operating in order to capture the applications that have been installed on the endpoint device. The static analysis is performed after the applications have been installed on the endpoint device and therefore does not require installing the application on any dedicated staging machine, nor any recording of the pre-installation state. The post-installation static analysis involves steps that are used to determine all of the necessary components that comprise the application, which can then be packaged together and managed as individual application packages.

Claims (51)

1. A method for application capture using a post-installation static analysis, the method comprising:

inspecting an installation database on an endpoint computing device to determine a set of basic components of an application installed on the endpoint computing device, the set of basic components including one or more binary executable files;

parsing the one or more binary executable files to identify character strings that indicate a file system path, a registry path, a file name or an imported module;

capturing one or more additional components identified by the character strings parsed from the one or more binary executable files; and

creating an application package comprised of the set of basic components and the additional components, wherein the application package is managed from a remote location and wherein the application package is executable on other endpoint computing devices different from the endpoint computing device.

2. The method of claim 1 , wherein the application package is capable of being distributed to a second endpoint computing device and executed on the second endpoint computing device without performing an installation process of the application on the second endpoint computing device.

3. The method of claim 1 , further comprising:

filtering the additional components identified by the character strings parsed from the one or more binary executable files to exclude core operating system files, such that only non-core operating system files are included in the application package.

4. The method of claim 1 , further comprising:

scanning a component object model (COM) database on the endpoint device to identify any reference to files that were captured during inspection of the installation database or identified by the character strings in the one or more binary executable files;

capturing any records of the COM database that contain the reference to said files.

5. The method of claim 1 , further comprising:

scanning shell extensions to identify any shell extensions that are based on the files that were captured during inspection of the installation database or identified by the character strings in the one or more binary executable files.

6. The method of claim 1 , further comprising:

scanning all shortcuts on a desktop and start menu on the endpoint device to identify any shortcuts that reference files that were captured during inspection of the installation database or identified by the character strings in the one or more binary executable files.

7. The method of claim 1 , further comprising:

capturing all file type associations of the application on the endpoint device and including the file type associations in the application package.

8. A computing device, comprising:

at least one processor; and

memory including instructions that, when executed by the at least one processor, cause the computing device to:

inspect an installation database on an endpoint computing device to determine a set of basic components of an application installed on the endpoint computing device, the set of basic components including one or more binary executable files;

parse the one or more binary executable files to identify character strings that indicate a file system path, a registry path, a file name or an imported module;

capture one or more additional components identified by the character strings parsed from the one or more binary executable files; and

create an application package comprised of the set of basic components and the additional components, wherein the application package is managed from a remote location and wherein the application package is executable on other endpoint computing devices different from the endpoint computing device.

9. The computing device of claim 8 , wherein the application package is capable of being distributed to a second endpoint computing device and executed on the second endpoint computing device without performing an installation process of the application on the second endpoint computing device.

10. The computing device of claim 8 , wherein the memory further includes instructions that when executed by the at least one processor, cause the computing device to:

filter the additional components identified by the character strings parsed from the one or more binary executable files to exclude core operating system files, such that only non-core operating system files are included in the application package.

11. The computing device of claim 8 , wherein the memory further includes instructions that when executed by the at least one processor, cause the computing device to:

scan a component object model (COM) database on the endpoint device to identify any reference to files that were captured during inspection of the installation database or identified by the character strings in the one or more binary executable files; and

capture any records of the COM database that contain the reference to said files.

12. The computing device of claim 8 , wherein the memory further includes instructions that when executed by the at least one processor, cause the computing device to:

scan shell extensions to identify any shell extensions that are based on the files that were captured during inspection of the installation database or identified by the character strings in the one or more binary executable files.

13. The computing device of claim 8 , wherein the memory further includes instructions that when executed by the at least one processor, cause the computing device to:

scan all shortcuts on a desktop and start menu on the endpoint device to identify any shortcuts that reference files that were captured during inspection of the installation database or identified by the character strings in the one or more binary executable files.

14. The computing device of claim 8 , wherein the memory further includes instructions that when executed by the at least one processor, cause the computing device to:

capture all file type associations of the application on the endpoint device and including the file type associations in the application package.

15. A non-transitory computer readable storage medium comprising one or more sequences of instructions, the instructions when executed by one or more processors causing the one or more processors to execute the operations of:

inspecting an installation database on an endpoint computing device to determine a set of basic components of an application installed on the endpoint computing device, the set of basic components including one or more binary executable files;

parsing the one or more binary executable files to identify character strings that indicate a file system path, a registry path, a file name or an imported module;

capturing one or more additional components identified by the character strings parsed from the one or more binary executable files; and

creating an application package comprised of the set of basic components and the additional components, wherein the application package is managed from a remote location and wherein the application package is executable on other endpoint computing devices different from the endpoint computing device.

16. The non-transitory computer readable storage medium of claim 15 , wherein the application package is capable of being distributed to a second endpoint computing device and executed on the second endpoint computing device without performing an installation process of the application on the second endpoint computing device.

17. The non-transitory computer readable storage medium of claim 15 , further comprising instructions executed by the one or more processors and causing the one or more processors to execute the operation of:

filtering the additional components identified by the character strings parsed from the one or more binary executable files to exclude core operating system files, such that only non-core operating system files are included in the application package.

18. The non-transitory computer readable storage medium of claim 15 , further comprising instructions executed by the one or more processors and causing the one or more processors to execute the operations of:

scanning a component object model (COM) database on the endpoint device to identify any reference to files that were captured during inspection of the installation database or identified by the character strings in the one or more binary executable files;

capturing any records of the COM database that contain the reference to said files.

19. The non-transitory computer readable storage medium of claim 15 , further comprising instructions executed by the one or more processors and causing the one or more processors to execute the operation of:

scanning shell extensions to identify any shell extensions that are based on the files that were captured during inspection of the installation database or identified by the character strings in the one or more binary executable files.

20. The non-transitory computer readable storage medium of claim 15 , further comprising instructions executed by the one or more processors and causing the one or more processors to execute the operation of:

scanning all shortcuts on a desktop and start menu on the endpoint device to identify any shortcuts that reference files that were captured during inspection of the installation database or identified by the character strings in the one or more binary executable files.

Assignments (3)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 29, 2016
From: ADLER, NIR; GOLBERT, DIMA; LUPOVITZ, OR; SHOUGAEV, KOSTA
To: VMWARE, INC.
Reel/Frame 040457/0286 →