IP Library Granted Patent US 11,940,982
Granted Patent B2
US 11,940,982 · App. 17/206,178 · Granted Mar 26, 2024

Systems and methods for locating application specific data

Inventor: Jad John Saliba (Puslinch, CA)
Assignee: Magnet Forensics Investco Inc.
G06F16/2365G06F16/245G06F16/9535G06F21/57G06F21/64G06F21/78G06Q10/10G06Q50/01H04L63/308
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,940,982
App. No.
17/206,178
Granted
Mar 26, 2024
Kind
B2
Abstract

A system and a method for locating application-specific data that has been previously deleted and located in an address of the data storage device marked as being available for storing new data. The method includes accessing unidentified data from at least one data storage device; examining the unidentified data to detect at least one application-specific data pattern associated with at least one application; for each detected application-specific data pattern, executing an application-specific validation process to determine whether the unidentified data includes valid data associated with a corresponding application; and if it is determined that the unidentified data includes valid data associated with the corresponding application, then recovering the valid data.

Claims (55)

1. A method of searching for application-specific data from among unidentified data stored on at least one data storage device, the method comprising executing via a computing device comprising at least one processor:

generating and displaying a first user interface (UI) including a plurality of selectable search types, wherein each of the plurality of search types conducts a search at a subset of sectors or data storage addresses of the at least one data storage device, the subset of sectors or data storage addresses associated with the selectable search type, the association being defined without input from a user;

receiving a selection of at least one search type from the plurality of selectable search types via the first UI;

generating and displaying a second UI including a plurality of selectable applications, wherein receiving a selection of at least one application causes the at least one processor to execute a search for application-specific data of the at least one selected application according to the at least one selected search type;

receiving a selection of the at least one application via the second UI;

executing the search, comprising:

for each of the at least one selected search type, searching the unidentified data of the at least one data storage device at the subset of sectors or data storage addresses associated with the selected search type to locate the application-specific data associated with the at least one selected application, wherein the searching comprises:

examining the unidentified data at the associated subset of sectors or data storage addresses to detect at least one application-specific data pattern indicative of the at least one selected application; and

for each application-specific data pattern detected in the unidentified data, executing an application validation process on a subset of the unidentified data for the at least one selected application to determine that the subset of the unidentified data comprises valid data associated with the at least one selected application, executing the application validation process further comprising checking data surrounding the subset of the unidentified data to determine that the subset of the unidentified data is not associated with another application; and

generating a report indicative of the application-specific data;

wherein at least determining that the subset of unidentified data comprises valid data associated with the at least one selected application and determining that the subset of the unidentified data is not associated with another application are executed in parallel.

2. The method of claim 1 , wherein the first UI and the second UI are the same UI.

3. The method of claim 1 , wherein the unidentified data comprises unallocated data.

4. The method of claim 3 , wherein the unallocated data comprises deleted data.

5. The method of claim 1 , wherein the plurality of selectable search types comprise a search type configured to search for the application-specific data in predetermined file and folder locations on the at least one data storage device where relevant application-specific data is commonly found.

6. The method of claim 1 , wherein the plurality of selectable search types comprise a search type configured to search for the application-specific data in predetermined locations where relevant application-specific data is commonly found and unallocated space on the at least one data storage device.

7. The method of claim 1 , wherein the plurality of selectable search types comprise an unallocated cluster search type configured to only search locations of the at least one data storage device identified as unallocated and to search file “slack” space.

8. The method of claim 1 , wherein the plurality of selectable search types comprise a sector-level search type configured to search the at least one data storage device by reading raw data of the at least one data storage device sector by sector without any reference to a file system.

9. The method of claim 1 , further comprising, in response to determining that the subset of the unidentified data comprises valid data associated with the at least one selected application, recovering at least the subset of the unidentified data.

10. The method of claim 1 , wherein the at least one selected application comprises an application local to the data storage device.

11. The method of claim 1 , wherein the method further comprises:

displaying as a selectable option in a third user interface at least one predetermined location on the at least one data storage device within the subset of sectors or data storage addresses of the at least one search type, the predetermined location to be excluded from the search when the selectable option is selected;

receiving via the third user interface a selection of the at least one predetermined location on the at least one data storage device within the subset of sectors or data storage addresses of the at least one search type via the selectable option; and

excluding the at least one location from the subset of sectors or data storage addresses of the at least one search type when executing the search.

12. A system for searching for application-specific data from among unidentified data, the system comprising at least one data storage device having the unidentified data stored therein and at least one processor, the at least one processor configured to:

generate and display a first user interface (UI) including a plurality of selectable search types, wherein each of the plurality of search types conducts a search at a subset of sectors or data storage addresses of the at least one data storage device, the subset of sectors or data storage addresses associated with the selectable search type, the association being defined without input from a user;

receive a selection of at least one search type from the plurality of selectable search types via the first UI;

generate and display a second UI including a plurality of selectable applications, wherein receiving a selection of at least one application causes the at least one processor to execute a search for application-specific data of the at least one selected application according to the at least one selected search type;

receive a selection of the at least one application via the second UI;

execute the search, comprising:

for each of the at least one selected search type, search the unidentified data of the at least one data storage device at the subset of sectors or data storage addresses associated with the selected search type to locate the application-specific data associated with the at least one selected application, wherein the searching comprises:

examining the unidentified data at the associated subset of sectors or data storage addresses to detect at least one application-specific data pattern indicative of the at least one selected application; and

for each application-specific data pattern detected in the unidentified data, executing an application validation process on a subset of the unidentified data for the at least one selected application to determine that the subset of the unidentified data comprises valid data associated with the at least one selected application, executing the application validation process further comprising checking data surrounding the subset of the unidentified data to determine that the subset of the unidentified data is not associated with another application; and

generating a report indicative of the application-specific data;

wherein at least determining that the subset of unidentified data comprises valid data associated with the at least one selected application and determining that the subset of the unidentified data is not associated with another application are executed in parallel.

13. The system of claim 12 , wherein the first UI and the second UI are the same UI.

14. The system of claim 12 , wherein the at least one selected application comprises a web-based application.

15. The system of claim 14 , wherein the web-based application is remotely accessible through a web-browser application.

16. The system of claim 12 , wherein the processor is further configured to:

for at least one of the at least one selected search type, display as a selectable option in a user interface at least one predetermined file location for exclusion from the search;

receive a selection of the selectable option via the user interface; and

exclude the at least one predetermined file location from the search.

17. The system of claim 12 , wherein the at least one application-specific data pattern comprises a header.

18. The system of claim 12 , wherein the subset of the unidentified data is determined based on a location of the application-specific pattern and the at least one selected application.

19. A non-transitory computer-readable medium for searching for application-specific data from among unidentified data stored on a data storage device, the non-transitory computer-readable medium comprising instructions that, when executed on at least one processor, cause the at least one processor to:

generate and display a first user interface (UI) including a plurality of selectable search types, wherein each of the plurality of search types conducts a search at a subset of sectors or data storage addresses of the data storage device, the subset of sectors or data storage addresses associated with the selectable search type, the association being defined without input from a user;

receive a selection of at least one search type from the plurality of selectable search types via the first UI;

generate and display a second UI including a plurality of selectable applications, wherein receiving a selection of at least one application causes the at least one processor to execute a search for application-specific data of the at least one selected application according to the at least one selected search type;

receive a selection of the at least one application via the second UI;

execute the search, comprising:

for each of the at least one selected search type, search the unidentified data of the data storage device at the subset of sectors or data storage addresses associated with the selected search type to locate the application-specific data associated with the at least one selected application, wherein the searching comprises:

examining the unidentified data at the associated subset of sectors or data storage addresses to detect at least one application-specific data pattern indicative of the at least one selected application; and

for each application-specific data pattern detected in the unidentified data, executing an application validation process on a subset of the unidentified data for the at least one selected application to determine that the subset of the unidentified data comprises valid data associated with the at least one selected application, executing the application validation process further comprising checking data surrounding the subset of the unidentified data to determine that the subset of the unidentified data is not associated with another application; and

generating a report indicative of the application-specific data;

wherein at least determining that the subset of unidentified data comprises valid data associated with the at least one selected application and determining that the subset of the unidentified data is not associated with another application are executed in parallel.

Assignments (6)
SECURITY INTEREST Recorded Apr 6, 2023
From: MAGNET FORENSICS INC.; MAGNET FORENSICS INVESTCO, INC.
To: OWL ROCK TECHNOLOGY FINANCE CORP., AS COLLATERAL AGENT
Reel/Frame 063248/0122 →
RELEASE OF SECURITY INTEREST Recorded Apr 5, 2023
From: ROYAL BANK OF CANADA
To: MAGNET FORENSICS INC.; MAGNET FORENSICS INVESTCO, INC.
Reel/Frame 063231/0372 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 057797 FRAME: 0493. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 1, 2021
From: MAGNET FORENSICS INVESTCO, INC.
To: ROYAL BANK OF CANADA
Reel/Frame 058037/0964 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2021
From: MAGNET FORENSICS INVESTCO, INC.
To: ROYAL BANK OF CANADA
Reel/Frame 057797/0493 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 28, 2021
From: SALIBA, JAD
To: MAGNET FORENSICS INC.
Reel/Frame 056684/0961 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 28, 2021
From: MAGNET FORENSICS INC.
To: MAGNET FORENSICS INVESTCO INC.
Reel/Frame 056684/0988 →
Continuity (4)
Continuation 14928013 · Oct 30, 2015
Continuation 13711902 · Dec 12, 2012
Provisional Application 61579325 · Dec 22, 2011
Related Publication 20210311927A1 · Oct 7, 2021