Computer-implemented methods and systems for determining application matching status
AssigneeCitrix Systems, Inc.
InventorsSheldon Ferdinand Lachambre, David Thornley
Life of this patent
Estimating the term…
Abstract
A server includes one or more processors configured to determine relationships between one or more executable files, one or more library files, and one or more application programming interfaces (APIs) of a first application, and compare the determined relationships of the first application to determined relationships between one or more executable files, one or more library files, and one or more APIs of a second application. An indication of a matching status between the first and second applications is provided based on the compare.
Claims14
A server comprising:
- one or more processors configured to:
- organize intrinsic data in first and second applications, with the intrinsic data being organized as respective first and second dependency trees representing executable files and application programming interface (API) calls in the respective applications, compute top-level hash values based on the organized intrinsic data for a top-level hierarchy of the first and second dependency trees, with the top-level hash values being returned by a hash function identifying the first and second applications respectively,
- compare the top-level hash values for the top-level hierarchy of the first and second dependency trees for a match, in response to their not being a match, compute second-level hash values for a second-level hierarchy of the first and second dependency trees, compare the second-level hash values of the second-level hierarchy of the first and second dependency trees for a match, and provide an indication of a matching status between the second-level hash values of the second-level hierarchy of the first and second dependency trees based on the compare.
A method for operating a server comprising:
- organizing intrinsic data in first and second applications, with the intrinsic data being organized as respective first and second dependency trees representing executable files and application programming interface (API) calls in the respective applications;
- computing top-level hash values based on the organized intrinsic data for a top-level hierarchy of the first and second dependency trees, with the top-level hash values being returned by a hash function identifying the first and second applications respectively, in response to their not being a match, computing second-level hash values for a second-level hierarchy of the first and second dependency trees, comparing the second-level hash values of the second-level hierarchy of the first and second dependency trees for a match, and providing an indication of a matching status between the second-level hash values of the second-level hierarchy of the first and second dependency trees based on the compare.
A non-transitory computer readable medium for operating a server, and with the non-transitory computer readable medium having a plurality of computer executable instructions for causing the server to perform steps comprising:
- organizing intrinsic data in first and second applications, with the intrinsic data being organized as respective first and second dependency trees representing executable files and application programming interface (API) calls in the respective applications;
- computing top-level hash values based on the organized intrinsic data for a top-level hierarchy of the first and second dependency trees, with the top-level hash values being returned by a hash function identifying the first and second applications respectively, in response to their not being a match, computing second-level hash values for a second-level hierarchy of the first and second dependency trees, comparing the second-level hash values of the second-level hierarchy of the first and second dependency trees for a match, and providing an indication of a matching status between the second-level hash values of the second-level hierarchy of the first and second dependency trees based on the compare.
Dependencies are inferred from the claim text.