IP Library Granted Patent US 40,702
Granted Patent E1
US 40,702 · App. 11/418,555 · Granted Apr 21, 2009

Method for securing video images

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 40,702
App. No.
11/418,555
Granted
Apr 21, 2009
Kind
E1
Abstract

A method for protecting the video memory on a computer system from being illicitly copied. The invention decrypts a previously encrypted image and displays it on the video screen. During the time the image is displayed, the invention protects it from being copied by other running applications. This is accomplished in multithreaded operating systems by first issuing a multithreaded locking primitive to the video memory resource, and then inserting a pending video hardware request that will take precedence over any subsequent video memory access requests. The pending request serves the purpose of destroying the contents of video memory. The pending request is passive in that it does not execute unless a malicious program has removed the video memory lock.

Claims (84)

1. A method of preventing copying of a displayed an image from a computer video memory comprising the steps of:

a. decoding an storing the image into in the video memory;

b. controlling video hardware and protecting the video memory, wherein the protecting step comprises locking the video memory and ;

issuing at least one pending operation comprising a suspended video operation in a queue for destroying , wherein the suspended video operation is executable to destroy the contents of the video memory;

c. displaying the image; and

d. destroying the image displayed in the video memory via said at least one pending operation if an attempt is made to unlock the video memory.

2. The method of claim 1 wherein the step of decoding an storing the image into in the video memory comprises decrypting a previously encrypted image using a secret key.

3. The method of claim 1 further comprising the step of obtaining exclusive cooperative control of the video hardware comprising issuing video hardware control DirectX calls.

4. The method of claim 1 further comprising the step of obtaining exclusive cooperative control of the video hardware comprising a first set of calls to a video device driver.

5. The method of claim 1 further comprising the step of allocating video memory comprising creating at least one display surface.

6. The method of claim 1 wherein the step steps of locking the video memory and issuing at least one pending hardware operation comprises comprise issuing video hardware locking and issuing pending operations using DirectX® calls.

7. The method of claim 1 wherein the step steps of locking the video memory and issuing at least one pending operation comprises comprise issuing a second set of calls to a video device driver.

8. The method of claim 1 wherein the step of destroying the image displayed in the video memory comprises destroying the image displayed in the video memory when another application unlocks the video memory for reading the video memory.

9. The method of claim 1 whereby further comprising the step of displaying the image comprises comprising the steps of:

a. decoding a native image file format;

b. verifying an image file using a check sum method;

c. if the image file is valid, reading decrypting information from the image file; and

d. decrypting the image into video memory.

10. A method of preventing copying of images from a computer video memory, the method comprising the steps of:

a) decoding a proprietary image format into video memory;

b) controlling video hardware and locking video memory, wherein the locking step comprises locking a video surface and issuing at least one pending operation wherein the pending operation comprises a pending video hardware operation issued via a DirectX® call, comprising the substeps of executing the following DirectX® calls;

LPDIRECTDRAW DirectXhandle 1 , DirectXhandle 2 ;

DirectDrawCreate(VideoID, &DirectXhandle, 0 );

DirectXhandle 1 →QueryInterface(IID_IDirectDraw 2 , (void**)Directxhandle 2 );

DirectXhandle 2 →SetCooperativeLevel (WindowHandle, DDSCL_EXCLUSIVE|DDSCL_FULLSCREEN);

c) obtaining exclusive cooperative control of the video hardware;

d) allocating video memory comprising the substeps of executing the following DirectX® calls:

LPDIRECTDRAWSURFACE primary_surface, back_surface, blank_surface;

DDSURFACEDESC surface_descriptor;

DDSCAPS surface_capabilities;

surface_descriptor.ddsCaps.dwCaps=DDSCAPS_PRIMARYSURFACE

DDSCAPS_FLIP IDDSCAPS_COMPLEX;

surface_descriptor.dwBackBufferCount=1;

DirectXhandle 2 →CreateSurface(&surface_descriptor, &primary_surface, 0 );

primary_surface→GetAttachedSurface(&surface_capabilities, &back_surface);

e) locking video hardware comprising the substeps of executing the following DirectX® call;

primary_surface→Lock( 0 , &surface_descriptor, DDLOCK_WAIT|DDLOCK_WRITEONLY, 0 )

f) destroying an image via pending video operations if an attempt is made to unlock video memory comprising the substeps of issuing the following DirectX® calls:

primary_surface→Flip( 0 , DDFLIP_WAIT);

back_surface→BItFast( 0 , 0 , blank_surface, 0 , DDBLTFAST_WAIT).

11. The method of claim 10 further comprising the step of creating a blank surface.

12. The method of claim 11 wherein the step of creating a blank surface comprises executing the following DirectX® calls:

LPDIRECTDRAWSURFACE blank_surface;

DDSURFACEDESC surface_descriptor;

surface_descriptor.ddsCaps.dwCaps=DDSCAPS_PRIMARYSURFACE;

DirectXhandle 2 →CreateSurface(&surface_descriptor, &blank_surface, 0 ).

13. The method of claim 1 wherein the step of controlling video hardware and protecting the video memory comprises further comprising the step of executing a hardware accelerated Bit-Blt (bit-boundary block transfer) instruction.

14. A method for preventing copying of an image from a computer video memory of a computer running a multithreaded operating system, said method comprising:

issuing a multithreaded locking primitive associated with the computer video memory;

issuing a passive video hardware operation executable upon said multithreaded locking primitive being removed;

displaying the image; and

executing said passive video hardware operation in response to said multithreaded locking primitive being removed, wherein said executing said passive video hardware operation destroys the displayed image.

15. The method of claim 14 further comprising:

generating the image by decrypting an encrypted image; and

storing the image in the computer video memory.

16. The method of claim 14 further comprising:

obtaining exclusive cooperative control of the computer video memory.

17. The method of claim 16 wherein obtaining exclusive cooperative control of the computer video memory comprises issuing one or more video hardware control DirectX® calls.

18. A system comprising:

a video memory configured to store an image;

a processor coupled to the video memory, wherein the processor is configured to execute program instructions to:

lock the video memory;

issue a suspended video operation executable to destroy the contents of the video memory; and

destroy the image in the video memory by executing the suspended video operation if an attempt is made to unlock the video memory.

19. The system of claim 18 wherein the processor is further configured to execute the program instructions to:

generate the image by decrypting an encrypted image; and

store the image in the video memory.

20. The system of claim 18 wherein the processor is further configured to execute the program instructions to:

obtain exclusive cooperative control of the video memory.

21. The system of claim 20 wherein in obtaining exclusive cooperative control of the video memory, the processor is further configured to execute the program instructions to issue one or more video hardware control DirextX® calls.

22. The system of claim 18 wherein in locking the video memory, the processor is further configured to execute the program instructions to issue a multithreaded locking primitive associated with the video memory.

23. The system of claim 22 wherein the attempt to unlock the video memory comprises an attempt to remove the multithreaded locking primitive.

24. A computer- readable storage medium comprising program instructions for preventing copying of an image from a video memory, wherein the program instructions are executable to implement:

storing the image in the video memory;

locking the video memory;

issuing a suspended video operation executable to destroy the contents of the video memory; and

destroying the image in the video memory by executing the suspended video operation if an attempt is made to unlock the video memory.

25. The computer- readable storage medium of claim 24 wherein the program instructions are further executable to implement:

generating the image by decrypting an encrypted image.

26. The computer- readable storage medium of claim 24 wherein the program instructions are further executable to implement:

obtaining exclusive cooperative control of the video memory.

27. The computer- readable storage medium of claim 26 wherein in obtaining exclusive cooperative control of the video memory, the program instructions are further executable to implement issuing one or more video hardware control DirectX® calls.

28. The computer- readable storage medium of claim 24 wherein in locking the video memory, the program instructions are further executable to implement issuing a multithreaded locking primitive associated with the video memory.

29. The computer- readable storage medium of claim 28 wherein the attempt to unlock the video memory comprises an attempt to remove the multithreaded locking primitive.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 5, 2020
From: INTELLECTUAL VENTURES ASSETS 161 LLC
To: HANGER SOLUTIONS, LLC
Reel/Frame 052159/0509 →
MERGER Recorded Oct 30, 2015
From: VISUAL ADVANCES LLC
To: XYLON LLC
Reel/Frame 037013/0656 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 2, 2009
From: PIZANO, CARLOS E.; HEILEMAN, GREGORY L.
To: ELISAR SOFTWARE CORPORATION, INC.
Reel/Frame 022333/0139 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 2, 2009
From: ELISAR SOFTWARE CORPORATION
To: VISUAL ADVANCES LLC
Reel/Frame 022333/0171 →