Systems And Methods For Software Analysis
First Claim
1. A method for identifying software comprising:
- obtaining a software file;
determining a plurality of artifacts for the software file;
accessing a database which stores a plurality of reference artifacts for each of a plurality of reference software files;
comparing the plurality of artifacts to the plurality of reference artifacts; and
identifying the software file by identifying the reference software file having the plurality of reference artifacts that match the plurality of artifacts.
2 Assignments
0 Petitions
Accused Products
Abstract
Systems, methods, and computer program products are provided for identifying software files, flaws in code, and program fragments by obtaining a software file, determining a plurality of artifacts, accessing a database which stores a plurality of reference artifacts for reference software files, comparing at least one of the artifacts to at least one of the reference artifacts stored in the database, and identifying the software file by identifying the reference software file having the reference artifacts that correspond to the plurality of artifacts. Certain embodiments can also automatically provide updated versions of files, patches to be applied, or repaired blocks of code to replace flawed blocks. Example embodiments can accept a wide variety of file types, including source code and binary files and can analyze source code or convert files to an intermediate representation (IR) and analyze the IR.
-
Citations
50 Claims
-
1. A method for identifying software comprising:
-
obtaining a software file; determining a plurality of artifacts for the software file; accessing a database which stores a plurality of reference artifacts for each of a plurality of reference software files; comparing the plurality of artifacts to the plurality of reference artifacts; and identifying the software file by identifying the reference software file having the plurality of reference artifacts that match the plurality of artifacts. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A method comprising:
-
obtaining one or more software files; determining a plurality of artifacts for the one or more software files; accessing a database which stores a plurality of reference artifacts; and identifying a program fragment for the one or more software files by matching the plurality of artifacts that correspond to the program fragment to the plurality of reference artifacts that correspond to the program fragment. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39)
-
-
40. A system for identifying software comprising:
-
an interface capable of communicating with a source having a software file; a storage device which stores a plurality of reference artifacts for each of a plurality of reference software files; and a processor communicatively coupled to the interface and the storage device, and configured to; cause the software file to be obtained; determine a plurality of artifacts for the software file; access the plurality of reference artifacts in the storage device; compare the plurality of artifacts to the plurality of reference artifacts; and identify the software file by identifying the reference software file having the plurality of reference artifacts that matched the plurality of artifacts. - View Dependent Claims (41, 42, 43, 44)
-
-
45. A system comprising:
-
an interface capable of communicating with a source having one or more software files; a storage device which stores a plurality of reference artifacts; and a processor communicatively coupled to the interface and the storage device, and configured to; cause one or more software files to be obtained; determine a plurality of artifacts for the one or more software files; access a database which stores a plurality of reference artifacts; and identify a program fragment for the one or more software files by matching the plurality of artifacts that correspond to the program fragment to the plurality of reference artifacts that correspond to the program fragment. - View Dependent Claims (46, 47, 48)
-
-
49. A non-transitory computer readable medium with an executable program stored thereon, wherein the program instructs a processing device to perform the following steps:
-
obtain a software file; determine a plurality of artifacts for the software file; access a database which stores a plurality of reference artifacts for each of a plurality of reference software files; compare the plurality of artifacts to the plurality of reference artifacts; and identify the software file by identifying the reference software file having the plurality of reference artifacts that match the plurality of artifacts.
-
-
50. A non-transitory computer readable medium with an executable program stored thereon, wherein the program instructs a processing device to perform the following steps:
-
obtain one or more software files; determine a plurality of artifacts for the one or more software files; access a database which stores a plurality of reference artifacts; and identify a program fragment for the one or more software files by matching the plurality of artifacts that correspond to the program fragment to the plurality of reference artifacts that correspond to the program fragment.
-
Specification