IP Library Granted Patent US 7,581,256
Granted Patent B2
US 7,581,256 · App. 10/680,041 · Granted Aug 25, 2009

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,581,256
App. No.
10/680,041
Granted
Aug 25, 2009
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 (75)

1. A method of verifying the authenticity of a process stored in RAM of a gaming machine having a master gaming processor for executing said process, the method comprising:

identifying one or more processes scheduled for execution on the gaming machine RAM;

selecting a first process of the one or more processes for verification;

determining a first identifier associated with the selected first process;

identifying a first portion of code of the first process that does not change during execution of the first process, the first portion of code comprising a first portion of bits;

identifying, using the first identifier, one or more gaming software programs stored at one or more one file storage devices, wherein each of the one or more gaming software programs has associated therewith a respective identifier which matches the first identifier;

performing verification analysis of the first process to determine whether any of the identified one or more gaming software programs includes code which matches the first portion of code of the selected first process;

wherein the verification analysis includes identifying one or more portions of code associated with at least one of the identified one or more gaming software programs, wherein none of the identified one or more portions of code changes during execution of the at least one of the identified one or more gaming software programs, each of the identified one or more portions of code having associated therewith a respective portion of bits;

wherein the verification analysis further includes comparing bits of the first portion of code and bits of the identified one or more portions of code to determine whether any portion of bits of the identified one or more portions of code matches the first portion of bits of the first portion of code; and

generating an error event if it is determined that none of the compared portion of bits of the identified one or more portions of code matches the first portion of bits of the first portion of code.

2. The method of claim 1 further comprising:

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

3. The method of claim 1 further comprising:

parsing the selected first process to distinguish between portions of the first process which do not change during execution of the first process and portions of the first process which do change during execution of the first process.

4. The method of claim 1 wherein the first portion of the selected first process includes a first portion of executable code relating to the selected first process.

5. The method of claim 1 wherein the comparison of the first portion of the first process and the selected first gaming software program includes:

comparing the first portion of the first process and the identified one or more portions of code in order to determine whether the identified one or more portions of code includes the first portion of the selected first process.

6. The method of claim 1 :

wherein the first portion of the selected first process includes a first portion of executable code relating to the selected first process; and

wherein the verification analysis includes comparing the first portion of executable code and the identified one or more portions of code in order to determine whether the identified one or more portions of code includes the first portion of executable code.

7. The method of claim 1 wherein the comparing of bits of the first portion of executable code and bits of the identified one or more portions of code includes performing a byte-comparison of the first portion of the first process and the identified one or more gaming software programs.

8. The method of claim 1 , wherein the one or more gaming software programs are certified for execution on the gaming machine in one or more gaming jurisdictions by a regulatory entity within each of the gaming jurisdictions.

9. The method of claim 1 , further comprising:

controlling a wager-based game played on the gaming machine.

10. The method of claim 9 , wherein the wager-based game corresponds to a game selected from a group consisting of:

a video slot game, a mechanical slot game, a lottery game, a video poker game, a video black jack game, a video card game, a video bingo game, a video keno game and a video pachinko game.

11. The method of claim 1 , wherein the one or more file storage devices include at least storage device selected from a group consisting of: a local file storage devices located at the gaming machine, and a remote file storage device located at a remote system.

12. The method of claim 1 , further comprising:

shutting down the gaming machine if it is determined that none of the identified one or more gaming software programs includes the first portion of the selected first process.

13. The method of claim 1 , wherein a list of the one or more processes scheduled for execution on the gaming machine RAM is provided by an operating system.

14. A system of verifying the authenticity of a process stored in RAM of a gaming machine having a master gaming processor for executing said process, the system comprising:

at least one processor;

at least one interface; and

memory;

the system being operable to:

identify one or more processes scheduled for execution on the gaming machine RAM;

select a first process of the one or more processes for verification;

determine a first identifier associated with the selected first process;

identify a first portion of code of the first process that does not change during execution of the first process, the first portion of code comprising a first portion of bits;

identify, using the first identifier, one or more gaming software programs stored at one or more one file storage devices, wherein each of the one or more gaming software programs has associated therewith a respective identifier which matches the first identifier;

perform verification analysis of the first process to determine whether any of the identified one or more gaming software programs includes code which matches the first portion of code of the selected first process;

identify one or more portions of code associated with at least one of the identified one or more gaming software programs, wherein none of the identified one or more portions of code changes during execution of the at least one of the identified one or more gaming software programs, each of the identified one or more portions of code having associated therewith a respective portion of bits;

compare bits of the first portion of code and bits of the identified one or more portions of code to determine whether any portion of bits of the identified one or more portions of code matches the first portion of bits of the first portion of code; and

generate an error event if it is determined that none of the compared portion of bits of the identified one or more portions of code matches the first portion of bits of the first portion of code.

15. The system of claim 14 being further operable to:

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

16. The system of claim 14 being further operable to:

parse the selected first process to distinguish between portions of the first process which do not change during execution of the first process and portions of the first process which do change during execution of the first process.

17. The system of claim 14 wherein the first portion of the selected first process includes a first portion of executable code relating to the selected first process.

18. The system of claim 14 being further operable to:

compare the first portion of the first process and the identified one or more portions of code in order to determine whether the identified one or more portions of code includes the first portion of the selected first process.

19. The system of claim 14 wherein the first portion of the selected first process includes a first portion of executable code relating to the selected first process, the system being further operable to:

compare the first portion of executable code and the identified one or more portions of code in order to determine whether the identified one or more portions of code includes the first portion of executable code.

20. The system of claim 14 wherein the comparing of bits of the first portion of executable code to bits of the identified one or more portions of code includes performing a byte-comparison of the first portion of the first process and the identified one or more gaming software programs.

21. The system of claim 14 , wherein the one or more gaming software programs are certified for execution on the gaming machine in one or more gaming jurisdictions by a regulatory entity within each of the gaming jurisdictions.

22. The system of claim 14 , being further operable to:

control a wager-based game played on the gaming machine.

23. The system of claim 22 , wherein the wager-based game corresponds to a game selected from a group consisting of:

a video slot game, a mechanical slot game, a lottery game, a video poker game, a video black jack game, a video card game, a video bingo game, a video keno game and a video pachinko game.

24. The system of claim 14 , wherein the one or more file storage devices include at least storage device selected from a group consisting of: a local file storage devices located at the gaming machine, and a remote file storage device located at a remote system.

25. The system of claim 14 , being further operable to:

shut down the gaming machine if it is determined that none of the identified one or more gaming software programs includes the first portion of the selected first process.

26. The system of claim 14 , wherein a list of the one or more processes scheduled for execution on the gaming machine RAM is provided by an operating system.

27. A system of verifying the authenticity of a process stored in RAM of a gaming machine having a master gaming processor for executing said process, the system comprising:

at least one processor;

memory;

means for identifying one or more processes scheduled for execution on the gaming machine RAM;

means for selecting a first process of the one or more processes for verification;

means for determining a first identifier associated with the selected first process;

means for identifying a first portion of code of the first process that does not change during execution of the first process, the first portion of code comprising a first portion of bits;

means for identifying, using the first identifier, one or more gaming software programs stored at one or more one file storage devices, wherein each of the one or more gaming software programs has associated therewith a respective identifier which matches the first identifier;

means for performing verification analysis of the first process to determine whether any of the identified one or more gaming software programs includes code which matches the first portion of code of the selected first process;

means for identifying one or more portions of code associated with at least one of the identified one or more gaming software programs, wherein none of the identified one or more portions of code changes during execution of the at least one of the identified one or more gaming software programs, each of the identified one or more portions of code having associated therewith a respective portion of bits;

means for comparing bits of the first portion of code and bits of the identified one or more portions of code to determine whether any portion of bits of the identified one or more portions of code matches the first portion of bits of the first portion of code; and

means for generating an error event if it is determined that none of the compared portion of bits of the identified one or more portions of code matches the first portion of bits of the first portion of code.

Continuity (2)
Continuation 0992509800 · Aug 8, 2001
Related Publication 20040068654A1 · Apr 8, 2004