A system for locating application-specific data comprising: (a) at least one data storage device, having unidentified data stored therein; (b) at least one processor operatively coupled to the at least one data storage device, the at least one processor configured to: (i) provide a user-definable strictness level indicative of a tolerable amount of unacceptable characters; (ii) access unidentified data from at least one data storage device, wherein the unidentified data is data stored in sectors or addresses of the at least one data storage device that are marked as unallocated; (iii) examine the unidentified data to detect a plurality of application-specific data patterns, each of the application-specific data patterns indicative of respective applications in a plurality of software applications; (iv) for each application-specific data pattern detected in the unidentified data, determine whether said application-specific data pattern is associated with two or more applications and execute an application validation process specific for each of said associated two or more applications, wherein the at least one processor is further configured to execute each application-specific validation process by: determining an amount of unacceptable characters present in a portion of the unidentified data, the unacceptable characters being indicative of data that is not associated with any desired application; and determining whether the portion of the unidentified data passes the application-specific validation process based upon the amount of unacceptable characters and the user-definable strictness level; and (v) in response to determining that the unidentified data passes the selected application-specific validation process, recover relevant data from the portion of data and associate said relevant data with the corresponding application. (a) at least one data storage device, having unidentified data stored therein; (b) at least one processor operatively coupled to the at least one data storage device, the at least one processor configured to: (i) provide a user-definable strictness level indicative of a tolerable amount of unacceptable characters; (ii) access unidentified data from at least one data storage device, wherein the unidentified data is data stored in sectors or addresses of the at least one data storage device that are marked as unallocated; (iii) examine the unidentified data to detect a plurality of application-specific data patterns, each of the application-specific data patterns indicative of respective applications in a plurality of software applications; (iv) for each application-specific data pattern detected in the unidentified data, determine whether said application-specific data pattern is associated with two or more applications and execute an application validation process specific for each of said associated two or more applications, wherein the at least one processor is further configured to execute each application-specific validation process by: determining an amount of unacceptable characters present in a portion of the unidentified data, the unacceptable characters being indicative of data that is not associated with any desired application; and determining whether the portion of the unidentified data passes the application-specific validation process based upon the amount of unacceptable characters and the user-definable strictness level; and (v) in response to determining that the unidentified data passes the selected application-specific validation process, recover relevant data from the portion of data and associate said relevant data with the corresponding application. (i) provide a user-definable strictness level indicative of a tolerable amount of unacceptable characters; (ii) access unidentified data from at least one data storage device, wherein the unidentified data is data stored in sectors or addresses of the at least one data storage device that are marked as unallocated; (iii) examine the unidentified data to detect a plurality of application-specific data patterns, each of the application-specific data patterns indicative of respective applications in a plurality of software applications; (iv) for each application-specific data pattern detected in the unidentified data, determine whether said application-specific data pattern is associated with two or more applications and execute an application validation process specific for each of said associated two or more applications, wherein the at least one processor is further configured to execute each application-specific validation process by: determining an amount of unacceptable characters present in a portion of the unidentified data, the unacceptable characters being indicative of data that is not associated with any desired application; and determining whether the portion of the unidentified data passes the application-specific validation process based upon the amount of unacceptable characters and the user-definable strictness level; and (v) in response to determining that the unidentified data passes the selected application-specific validation process, recover relevant data from the portion of data and associate said relevant data with the corresponding application.