1. A computer-implemented method for identifying software component versions on a file system the method comprising: scanning, by a computer, a plurality of target files to obtain content-based file identifiers; comparing, by the computer, each content-based file identifier to identifiers in a reference library to determine a plurality of candidate versions of software components, each candidate version corresponding to at least one of the content-based file identifiers; identifying a subset of candidate versions from the plurality of candidate versions as present on the file system by, for each candidate version in the plurality of candidate versions: determining, using the reference library, whether the content-based file identifiers uniquely identify the candidate version, a content-based file identifier uniquely identifying the candidate version responsive to the content-based file identifier matching an identifier in the reference library that is associated with the candidate version but is not associated with other candidate versions; and responsive to the content-based file identifiers uniquely identifying the candidate version, determining that the candidate version is present on the file system; and producing a report including the subset of candidate versions identified as present on the file system.