A method for recognizing software applications installed on hardware devices includes scanning a hardware device to discover a target software application installed on the hardware device, where the target application includes one or more files; retrieving one or more sample applications for comparison to the target application; determining a resemblance between the target application and each of the one or more sample applications; and identifying the target application based on the resemblance determination.