IP Library Granted Patent US 12,314,137
Granted Patent B2
US 12,314,137 · App. 18/438,150 · Granted May 27, 2025

Autoscreenshot systems and methods for virtual operating system states

Inventor: Collin Mitchell (Rochester, NY)
Assignee: KASEYA US LLC
G06F11/1448G06F9/4401G06F9/45558G06N3/04G11C29/08G06F2009/45575
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 12,314,137
App. No.
18/438,150
Granted
May 27, 2025
Kind
B2
Abstract

Described screenshot verification systems and methods for automatically verifying the integrity of a backup image or other process-of-interest using a screenshot verification system, as well as disaster recovery systems including said systems and performing said methods. In accordance with various aspects of the present disclosure, a virtual machine is booted and screenshots of the boot process are taken, which are used by a trained model, such as a convolutional neural network, to determine a boot state consistency. The systems and methods described deliver over 99% accuracy and do not involve regular expression analysis typical of conventional methods.

Claims (50)

1. A method of evaluating integrity of a process-of-interest associated with a protected machine, the method comprising:

initiating, via an operating system managing the protected machine, the process-of-interest;

taking, via the operating system managing the protected machine, a plurality of screenshots of a display output while the process-of-interest is being initiated;

determining a state classification for each screenshot of the plurality of screenshots of the display output using a trained model, based on one or more determined attributes associated with each screenshot of the plurality of screenshots, wherein the trained model is an artificial neural network;

adding each screenshot of the plurality of screenshots of the display output and the state classification associated with each screenshot to a memory array;

testing at least a first portion of the memory array to determine a consistency class for the process-of-interest based on screenshots and the associated state classifications stored in at least the first portion of the memory array, wherein the consistency class represents a steady state classification over a particular period of time; and

performing one or more operations based on result of the testing.

2. The method of claim 1 , wherein the one or more operations include:

in response to the consistency class not being determined, collecting one or more additional screenshots;

adding the one or more additional screenshots to a second portion of the memory array; and

testing at least the second portion of the memory array to determine the consistency class for the process-of-interest.

3. The method of claim 1 , wherein the one or more operations include generating a report concerning the consistency class determined in connection with at least the first portion of the memory array, the report comprising a representative screenshot selected from the screenshots stored within the memory array and the consistency class.

4. The method of claim 1 , wherein the associated state classifications determined in association with each screenshot of the plurality of screenshots is at least one of: positive; informational; neutral; and negative.

5. The method of claim 4 , wherein at least the first portion of the memory array has a sample period m 1 and is tested to determine the consistency class by determining whether the first portion of the memory array has a common state classification associated with the one or more screenshots of the plurality of screenshots of the display output across the first portion of the memory array, wherein m 1 is an integer between 2 and 1000.

6. A method of evaluating integrity of at least a first backup image associated with a protected machine, the method comprising:

booting, via an operating system managing a first device, a virtual machine based on at least the first backup image;

taking, via the operating system managing the first device, a plurality of samples of display output of the virtual machine over a first duration;

determining, via a trained model of a prediction module, state classifications for one or more samples of the plurality of samples, based on one or more determined attributes associated with the one or more samples of the plurality of samples, wherein the trained model is an artificial neural network trained using a plurality of training images from one or more operating systems;

adding each sample of the plurality of samples and each associated state classifications to a first portion of a memory array; and

determining whether a consistency class is reached based on the plurality of samples added in the first portion of the memory array and the state classifications stored in the memory array, wherein the consistency class represents a steady state classification over a particular period of time.

7. The method of claim 6 , wherein the prediction module is located on a second device, the plurality of samples being communicated from the first device to the second device.

8. The method of claim 7 , the method further comprising:

generating a recommended action to be taken based on the consistency class; and

taking the recommended action, wherein the recommended action is taken by at least one of the first device and the second device.

9. The method of claim 8 , wherein the recommended action includes at least one of: reporting information regarding the consistency class; recording information regarding the consistency class; and ending the method.

10. The method of claim 7 , wherein the first device is the protected machine, and the second device is a screenshot verification server located remotely from the protected machine.

11. The method of claim 7 , wherein the first device is a remote storage server that is storing a backup image associated with the protected machine, and the second device is a screenshot verification server located remotely from the protected machine and the remote storage server.

12. The method of claim 7 , wherein the first device and the second device are the same device and are located remotely from the protected machine.

13. The method of claim 6 , wherein the state classification determined for each sample of the plurality of samples is at least one of: positive; informational; neutral; and negative.

14. The method of claim 6 , further comprising:

in response to determining that a consistent class is not reached:

collecting one or more additional screenshots;

adding the one or more additional screenshots to a second portion of the memory array;

testing at least the second portion of the memory array to determine the consistency class; and

repeating steps above one or more times until the consistency class is determined or a timeout duration is reached.

15. The method of claim 14 , wherein at least the first portion of the memory array has a sample period m 1 and is tested to determine the consistency class by determining whether the first portion of the memory array has a common state classification associated with the one or more samples of the plurality of samples of the virtual machine across the first portion of the memory array, wherein m 1 is an integer between 2 and 1000.

16. The method of claim 15 , wherein the second portion of the memory array has a sample period m 2 and is tested to determine the consistency class based on the second portion of the memory array by determining whether the second portion of the memory array has a common state classification associated with the one or more samples of the plurality of samples of the virtual machine stored in the memory array across the sample period m 2 , wherein m 2 is an integer between 2 and 1000.

17. The method of claim 16 , wherein at least the second portion of the memory array includes one or more samples and one or more state classifications not included in the first portion of the memory array.

18. The method of claim 6 , wherein the consistency class is at least one of: consistent positive; consistent negative; consistent neutral; and consistent informational.

19. A backup system comprising: a first device including at least one processor and memory including instructions that, when executed by the at least one processor, cause the first device to perform one or more of the following steps:

(a) obtaining a plurality of samples of display output of a virtual machine, booted based on at least a first backup image, over a first duration;

(b) communicating the plurality of samples to a prediction module comprising a trained model, wherein the trained model is an artificial neural network trained using a plurality of boot-state training images from one or more operating systems;

(c) determining, via the prediction module, state classifications for each sample of the plurality of samples of the virtual machine, based on one or more determined attributes associated with the one or more samples of the plurality of samples;

(d) adding each sample of the plurality of samples of the virtual machine and the state classifications determined in association with each sample to a memory array;

(e) testing at least a first portion of the memory array to determine a consistency class based on the plurality of samples and the state classifications stored in at least the first portion of the memory array, wherein the consistency class represents a steady state classification over a particular period of time; and

performing one or more operations based on the consistency class.

20. The backup system of claim 19 , wherein the operations include:

repeating steps (b) through (e) and testing at least a second portion of the memory array to determine a consistency class based on the plurality of samples and state classifications stored in at least the second portion of the memory array, wherein the second portion of the memory array includes one or more samples and one or more state classifications not included in the first portion of the memory array;

generating a report concerning the consistency class determined in connection with at least the first portion of the memory array, the report comprising a representative sample selected from the plurality of samples stored within the memory array and the consistency class; and

generating a recommended action to be taken based on the consistency class and taking the recommended action, wherein the recommended action including at least one of: reporting information regarding the consistency class; recording information regarding the consistency class; and terminating operations.

Assignments (4)
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Mar 24, 2025
From: KASEYA US LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS SECOND LIEN COLLATERAL AGENT
Reel/Frame 070608/0192 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Mar 21, 2025
From: KASEYA US LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 070586/0834 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2024
From: MITCHELL, COLLIN
To: DATTO, LLC
Reel/Frame 066668/0606 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2024
From: DATTO, LLC
To: KASEYA US LLC
Reel/Frame 066744/0569 →
Continuity (2)
Continuation 17366568 · Jul 2, 2021
Related Publication 20240184673A1 · Jun 6, 2024
References Cited (27)
US 8762881B2 · Lawrance · 2014 [cited by applicant]
US 9053126B2 · Uamada · 2015 [cited by applicant]
US 9251435B2 · Danko · 2016 [cited by applicant]
US 9323638B2 · Coleman et al. · 2016 [cited by applicant]
US 9424481B2 · Danko · 2016 [cited by applicant]
US 9836347B2 · McChord et al. · 2017 [cited by applicant]
US 10387889B1 · Hanna et al. · 2019 [cited by applicant]
US 10423657B2 · Pearlman et al. · 2019 [cited by applicant]
US 10684910B2 · McChord et al. · 2020 [cited by applicant]
US 10705939B2 · McChord et al. · 2020 [cited by applicant]
US 10754753B1 · Cogley et al. · 2020 [cited by applicant]
US 10983877B1 · Hoffman et al. · 2021 [cited by applicant]
US 20040153822A1 · Arcand · 2004 [cited by examiner]
US 20050223274A1 · Bernick et al. · 2005 [cited by applicant]
US 20060106743A1 · Horvitz · 2006 [cited by applicant]
US 20080016387A1 · Bensinger · 2008 [cited by applicant]
US 20120102373A1 · Waugh · 2012 [cited by examiner]
US 20150161008A1 · Antony · 2015 [cited by examiner]
US 20160048438A1 · Martos et al. · 2016 [cited by applicant]
US 20160335555A1 · Llanes-Tosar · 2016 [cited by examiner]
US 20180101425A1 · McChord et al. · 2018 [cited by applicant]
US 20200050762A1 · Sathyanarayana et al. · 2020 [cited by applicant]
US 20200151345A1 · Chauhan · 2020 [cited by applicant]
US 20200257587A1 · Chau et al. · 2020 [cited by applicant]
US 20210081294A1 · Golubev · 2021 [cited by examiner]
US 20210165708A1 · Vijayaraghavan · 2021 [cited by examiner]
International Search Report and Written Opinion for International Application No. PCT/US2021/065438 mailed Apr. 25, 2022, 16 pgs. [cited by applicant]