IP Library Granted Patent US 8,539,445
Granted Patent B2
US 8,539,445 · App. 12/193,556 · Granted Sep 17, 2013

Method for generating a robust software signature

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 8,539,445
App. No.
12/193,556
Granted
Sep 17, 2013
Kind
B2
Abstract

A method and a corresponding system and computer-usable medium for discovering software products on a plurality of one or more computers. The discovering method, system and/or computer-usable medium can populate a software catalogue without the manual intervention of an administrator. Such an approach reduces the cost of producing and maintaining a comprehensive knowledge base (e.g., the catalogue), which contains definitions of software products and the related signature. Signature definitions combine information obtained by the data gathering process and information contained in the registries. This combination allows the creation of a robust signature which reduces to a great extent the possibilities of both “false positive” and “false negative” results.

Claims (74)

1. A method for generating a product signature, and using the product signature to detect presence of an associated software product on file systems of a plurality of data processing systems, said method comprising:

scanning the file systems of the plurality of data processing systems to detect occurrences of sets of files, each of the sets being indicative of one or more versions of said product installed on a data processing system;

for each of the sets, collecting at least one element of registry information for use in verifying each of said sets;

determining a corresponding product signature being associated to a software product, the signature including a file-based portion indicative of the set of files and a registry-based portion being indicative of at least one element of registry information, said registry-based portion including a value of at least one predefined registry key associated with a version among said one or more versions of the product installed on the data processing system;

determining the value of said at least one predefined registry key; and

in response to detecting each of the sets, using said value of said at least one predefined registry key to verify the file-based portion of each of said sets and determine the version of the product based on the value of said at least one predefined registry key;

wherein scanning the file systems of the plurality of data processing systems for detecting the occurrence, further comprises:

identifying a plurality of executable files on the plurality of data processing systems;

creating a list containing the plurality of identified executable files;

selecting at least one file on the list; and

for each selected file, creating a footprint set that identifies files installed as part of said software product, the footprint set including the files which occur in all folders containing the selected file;

wherein the file-based portion includes said footprint set.

2. The method of claim 1 , wherein at least one element of registry information is derived from at least one of the files of the corresponding set of files; and

wherein the determining of the corresponding product signature associated to the software product comprises generating said product signature.

3. The method of claim 1 further comprising:

sorting the list according to the number of occurrences of each file;

starting from the file with the highest occurrence selecting one file on the list until the list has been scanned, and for each selected file:

creating a footprint set including the files which occur in all the folder containing the selected file; and

deleting from the sorted list all the files included in the footprint.

4. The method of claim 1 wherein the file-based portion of the product signature includes the file names of the set of files and the path relative to a common parent folder; and

wherein the file-based portion is associated with a version said one or more versions of the product installed on the data processing system.

5. The method of claim 1 wherein collecting at least one element of registry information includes querying the operating system registry according to at least one of the files of the corresponding set of files.

6. The method of claim 1 wherein the association of the signature with a software product identifier is based on information extracted by the files included in the corresponding set of files.

7. The method of claim 1 , wherein said set of files is associated with a plurality of said one or more versions of said product.

8. A system for generating a product signature, the product signature being indicative of the presence of an associated software product on a plurality of data processing systems, said system comprising:

a processor;

a data bus coupled to said processor; and

a computer-usable medium embodying computer code, said computer-usable medium being coupled to said data bus, said computer program code comprising instructions executable by said processor and configured for:

scanning the file systems of the plurality of data processing systems for detecting occurrences of sets of files, each of the sets being indicative of one or more versions of said product installed on a data processing system;

for each of the sets, collecting at least one element of registry information for use in verifying each of said sets;

determining a corresponding product signature being associated to a software product, the signature including a file-based portion indicative of the set of files and a registry-based portion being indicative of at least one element of registry information, said registry-based portion including a value of at least one predefined registry key associated with a version among said one or more versions of the product installed on the data processing system;

determining the value of said at least one predefined registry key; and

in response to detecting each of the sets, using said value of said at least one predefined registry key to verify the file-based portion of each of said sets and determine the version of the product based on the value of said at least one predefined registry key;

wherein said instructions are further configured for:

identifying a plurality of executable files on the plurality of data processing systems;

creating a list containing the plurality of identified executable files;

selecting at least one file on the list; and

for each selected file, creating a footprint set that identifies files installed as part of said software product, the footprint set including the files which occur in all folders containing the selected file;

wherein the file-based portion includes said footprint set.

9. The system of claim 8 , wherein at least one element of registry information is derived from at least one of the files of the corresponding set of files; and

wherein the determining of the corresponding product signature associated to the software product comprises generating said product signature.

10. The system of claim 8 wherein said instruction are further configured for:

sorting the list according to the number of occurrences of each file;

starting from the file with the highest occurrence selecting one file on the list until the list has been scanned, and for each selected file:

creating a footprint set including the files which occur in all the folder containing the selected file; and

deleting from the sorted list all the files included in the footprint.

11. The system of claim 8 wherein the file-based portion of the product signature includes the file names of the set of files and the path relative to a common parent folder; and

wherein the file-based portion is associated with said one or more versions of the product installed on the data processing system.

12. The system of claim 8 wherein collecting at least one element of registry information includes querying the operation system registry according to at least one of the files of the corresponding set of files.

13. The system of claim 8 wherein the association of the signature with a software product identifier is based on information extracted by the files included in the corresponding set of files.

14. The system of claim 8 , wherein said set of files is associated with a plurality of said one or more versions of said product.

15. A non-transitory computer-usable medium for generating a product signature, the product signature being indicative of the presence of an associated software product on a plurality of data processing systems, said computer-usable medium embodying computer program code, said computer program code comprising computer executable instructions configured for:

scanning the file systems of the plurality of data processing systems for detecting occurrences of sets of files, each of the sets being indicative of one or more versions of said product installed on a data processing system;

for each of the sets, collecting at least one element of registry information for use in verifying each of said sets;

determining a corresponding product signature being associated to a software product, the signature including a file-based portion indicative of the set of files and a registry-based portion being indicative of at least one element of registry information, said registry-based portion including a value of at least one predefined registry key associated with a version among said one or more versions of the product installed on the data processing system;

determining the value of said at least one predefined registry key; and

in response to detecting each of the sets, using said value of said at least one predefined registry key to verify the file-based portion of each of said sets and determine the version of the product based on the value of said at least one predefined registry key;

wherein scanning the file systems of the plurality of data processing systems for detecting the occurrence, further comprises:

identifying a plurality of executable files on the plurality of data processing systems;

creating a list containing the plurality of identified executable files;

selecting at least one file on the list; and

for each selected file, creating a footprint set that identifies files installed as part of said software product, the footprint set including the files which occur in all folders containing the selected file;

wherein the file-based portion includes said footprint set.

16. The computer-usable medium of claim 15 , wherein at least one element of registry information is derived from at least one of the files of the corresponding set of files; and

wherein the determining of the corresponding product signature associated to the software product comprises generating said product signature.

17. The computer-usable medium of claim 15 wherein said embodied computer program code further comprises computer executable instructions configured for:

sorting the list according to the number of occurrences of each file;

starting from the file with the highest occurrence selecting one file on the list until the list has been scanned, and for each selected file:

creating a footprint set including the files which occur in all the folder containing the selected file; and

deleting from the sorted list all the files included in the footprint.

18. The computer-usable medium of claim 15 , wherein the file-based portion of the product signature includes the file names of the set of files and the path relative to a common parent folder; and

wherein the file-based portion is associated with said one or more versions of the product installed on the data processing system.

19. The computer-usable medium of claim 16 , wherein collecting at least one element of registry information includes querying the operating system registry according to at least one of the files of the corresponding set of files.

20. The computer-usable medium of claim 15 , wherein said set of files is associated with a plurality of said one or more versions of said product.

Assignments (2)
CONVEYOR IS ASSIGNING UNDIVIDED 50% INTEREST Recorded Nov 8, 2017
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: SERVICENOW, INC.; INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 044413/0144 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2009
From: GANGEMI, ROSARIO; PICHETTI, LUIGI; TERENZI, ALESSANDRO; COMPASSI, ALESSANDRO; VITALETTI, MARCELLO
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 023209/0001 →