IP Library Granted Patent US 7,996,916
Granted Patent B2
US 7,996,916 · App. 12/503,696 · Granted Aug 9, 2011

Process verification

Assignee: IGT
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 7,996,916
App. No.
12/503,696
Granted
Aug 9, 2011
Kind
B2
Abstract

A disclosed gaming machine provides methods and apparatus of verifying the authenticity of gaming software stored in and executed from RAM on the gaming machine. When presenting a game on the gaming machine, a master gaming controller may dynamically load gaming software applications into RAM and dynamically unload gaming software applications from RAM. The authenticity of the gaming software applications temporarily stored in RAM may be verified by using methods to compare it with certified gaming software stored on one or more local or remote file storage devices accessible to the master gaming controller on the gaming machine. The verification process may be used to satisfy gaming regulatory entities within various gaming jurisdictions that require certified gaming software to be operating on the gaming machine at all times as well as to prevent tampering with the gaming machine.

Claims (43)

1. A method of verifying the authenticity of gaming software stored in RAM of a gaming device, said gaming device having a gaming controller for executing gaming software programs at the gaming device, the method comprising:

identifying a first gaming software program currently stored in the gaming device RAM, wherein the first gaming software includes a first portion of executable code stored in the gaming device RAM;

determining a first identifier associated with the first portion of executable code;

identifying, using the first identifier, a second gaming software program stored on a file storage device, wherein the second gaming software program has associated therewith an identifier which matches the first identifier, and wherein the second gaming software program includes a second portion of executable code;

verifying an authenticity of the first gaming software program, wherein verification of the authenticity of the first gaming software program includes comparing bits of the first portion of executable code to bits of the second portion of executable code, and determining whether any portion of the second portion of executable code matches the first portion of executable code; and

generating an error event if it is determined that no compared portion of the second portion of executable code matches the first portion of executable code.

2. The method of claim 1 further comprising:

parsing the first gaming software program to distinguish between portions of the first gaming software program which do not change during execution of the first gaming software program and portions of the first gaming software program which do change during execution of the first gaming software program.

3. The method of claim 1 further comprising:

parsing the second gaming software program to distinguish between portions of the second gaming software program which do not change during execution of the second gaming software program and portions of the second gaming software program which do change during execution of the second gaming software program.

4. The method of claim 1 wherein the comparing of bits of the first portion of executable code to bits of the second portion of executable code includes comparing bytes of the first portion of executable code to bytes of the second portion of executable code.

5. The method of claim 1 wherein the first portion of the gaming software program is a portion of the first gaming software program that does not change during execution of said first gaming software program.

6. The method of claim 1 wherein the gaming device corresponds to a gaming device selected from a group consisting of: a player tracking unit, a player tracking server, a game server, and a hand-held gaming device.

7. A system of verifying the authenticity of gaming software stored in RAM of a gaming device, said gaming device having a gaming controller for executing gaming software programs at the gaming device, the system comprising:

at least one processor;

at least one interface; and

memory;

the system being operable to:

identify a first gaming software program currently stored in the gaming device RAM, wherein the first gaming software includes a first portion of executable code stored in the gaming device RAM;

determine a first identifier associated with the selected first portion of executable code;

identify, using the first identifier, a second gaming software program stored on a file storage device, wherein the second gaming software program has associated therewith an identifier which matches the first identifier, and wherein the second gaming software program includes a second portion of executable code;

verify an authenticity of the first gaming software program, wherein verification of the authenticity of the first gaming software program includes comparing bits of the first portion of executable code to bits of the second portion of executable code, and determining whether any portion of the second portion of executable code matches the first portion of executable code; and

generate an error event if it is determined that no compared portion of the second portion of executable code matches the first portion of executable code.

8. The system of claim 7 being further operable to:

parse the first gaming software program to distinguish between portions of the first gaming software program which do not change during execution of the first gaming software program and portions of the first gaming software program which do change during execution of the first gaming software program.

9. The system of claim 7 being further operable to:

parse the second gaming software program to distinguish between portions of the second gaming software program which do not change during execution of the second gaming software program and portions of the second gaming software program which do change during execution of the second gaming software program.

10. The system of claim 7 wherein the comparing of bits of the first portion of executable code to bits of the second portion of executable code includes comparing bytes of the first portion of executable code to bytes of the second portion of executable code.

11. The system of claim 7 wherein the first portion of the gaming software program is a portion of the first gaming software program that does not change during execution of said first gaming software program.

12. The system of claim 7 wherein the gaming device corresponds to a gaming device selected from a group consisting of: a player tracking unit, a player tracking server, a game server, and a hand-held gaming device.

13. A system of verifying the authenticity of gaming software stored in RAM of a gaming device, said gaming device having a gaming controller for executing gaming software programs at the gaming device, the system comprising:

means for identifying a first gaming software program currently stored in the gaming device RAM, wherein the first gaming software includes a first portion of executable code stored in the gaming device RAM;

means for determining a first identifier associated with the first portion of executable code;

means for identifying, using the first identifier, a second gaming software program stored on a file storage device, wherein the second gaming software program has associated therewith an identifier which matches the first identifier, and wherein the second gaming software program includes a second portion of executable code;

means for verifying an authenticity of the first gaming software program, including means for comparing bits of the first portion of executable code to bits of the second portion of executable code, and determining whether any portion of the second portion of executable code matches the first portion of executable code; and

means for generating an error event if it is determined that no compared portion of the second portion of executable code matches the first portion of executable code.

14. The system of claim 13 further comprising:

means to parse the first gaming software program to distinguish between portions of the first gaming software program which do not change during execution of the first gaming software program and portions of the first gaming software program which do change during execution of the first gaming software program.

15. The system of claim 13 further comprising:

means to parse the second gaming software program to distinguish between portions of the second gaming software program which do not change during execution of the second gaming software program and portions of the second gaming software program which do change during execution of the second gaming software program.

16. The system of claim 13 wherein the comparing of bits of the first portion of executable code to bits of the second portion of executable code includes comparing bytes of the first portion of executable code to bytes of the second portion of executable code.

17. The system of claim 13 wherein the first portion of the gaming software program is a portion of the first gaming software program that does not change during execution of said first gaming software program.

18. The system of claim 13 wherein the gaming device corresponds to a gaming device selected from a group consisting of: a player tracking unit, a player tracking server, a game server, and a hand-held gaming device.

Continuity (3)
Division 10680041 · Oct 6, 2003
Continuation 09925098 · Aug 8, 2001
Related Publication 20090282489A1 · Nov 12, 2009