(57)【特許請求の範囲】
【請求項１】
遊技者が遊技に関する指示を入力することが可能な入力手段と、前記入力手段からの入力とコンピュータプログラムとにより遊技を制御する遊技制御手段と、遊技に関する情報を表示する表示手段とを備えた遊技機であって、
前記遊技機は、情報処理装置を含み、
前記情報処理装置は、
前記コンピュータプログラムを検証し、主記憶メモリを有する情報処理装置であって、
前記主記憶メモリに存在するコンピュータプログラムを含むデータの位置を示す情報を記憶するメモリ領域を参照し、前記データが存在する前記主記憶メモリの内容を第１のメモリ領域に検査符号として記憶し、
所定のタイミングにおいて、
前記主記憶メモリに存在する前記コンピュータプログラムを含むデータの位置を示す最新の情報を記憶するメモリ領域を参照し、前記コンピュータプログラムが存在する前記主記憶メモリの内容を第２のメモリ領域に検査符号として記憶し、
前記第１のメモリ領域に記憶された検査符号と、前記第２のメモリ領域に記憶された検査符号とを照合し、前記照合の結果、一致しないと判定された場合には、前記検査符号が一致しないことを示すエラーを示す信号を出力するとともに、前記入力手段からの入力を停止することにより前記遊技制御手段による遊技の制御を停止させる一方で、前記照合の結果、一致すると判定された場合には、前記コンピュータプログラムを検証するコントローラを備えることを特徴とする遊技機。
【請求項２】
請求項１に記載の遊技機であって、前記第１のメモリ領域と前記第２のメモリ領域とは、双方とも、前記主記憶メモリに設けられた領域である、遊技機。
【請求項３】
請求項１又は２に記載の遊技機であって、前記コントローラは、前記照合の結果、一致しないと判定された場合、危険プログラムに係る情報データベースを用いて、一致しないと判定されたコンピュータプログラムが前記主記憶メモリ中に存在することが危険であるか否かを判定し、危険であると判定された場合には、シャットダウンのための信号を出力する、遊技機。
【請求項４】
請求項１〜３のいずれかに記載の遊技機であって、前記コントローラは、前記遊技制御手段が前記主記憶メモリに存在する前記コンピュータプログラムに基づいて遊技の制御を行っている期間において、所定のタイミングで繰り返し前記照合を行う、遊技機。
【請求項５】
請求項１〜４のいずれかに記載の遊技機であって、前記第１のメモリ領域及び前記第２のメモリ領域の検査符号の一致を、前記コントローラが実行するプログラムにより判定する、遊技機。
【請求項６】
請求項１〜５のいずれかに記載の遊技機であって、前記第１のメモリ領域及び前記第２のメモリ領域が記憶する検査符号として、ＣＲＣを用いた、遊技機。
【請求項７】
請求項１〜６のいずれかに記載の遊技機であって、前記所定のタイミングを、検証されるコンピュータプログラムに対して独立して発生するタイミング信号を利用するプログラムを用いて決定する、遊技機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ中のプログラムを随時検証し、改ざんを発見した場合にプログラムの動作を制限する、情報処理装置に関する。
特に、本発明は、遊技プログラムの稼動中に加えられたメモリ内容の改ざんを検出して遊技プログラムの動作を制限する、遊技機に関する。
【背景技術】
【０００２】
従来より、遊技機の遊技プログラムを検証するプログラムが知られている。遊技機の検証プログラムは、ゲームプログラム及びゲームシステムプログラムの検証を行う手順に沿って記述されている。（特許文献１参照）。
また、遊技用情報を記憶したメモリカードのカードスロットと、遊技用情報を検証するための検証プログラムと検証プログラム自身の検証を行う予備検証プログラムとを記憶したＲＯＭを備えたゲーミングボードと、ＲＡＭを備えたマザーボードとを有し、予備検証プログラムによって検証プログラムの検証が完了した後、検証プログラムをマザーボードのＲＡＭに記憶し、遊技用情報の検証を行う遊技機が知られている（特許文献２参照）。
これら従来の遊技機の検証方法においては、遊技機のＣＰＵによって実行される検証プログラムが、主記憶メモリの内容の全体を走査することによって検証作業を行っている。検証作業は、（１）外部記憶装置から主記憶メモリへプログラムを読み込んだ時点において、外部記憶装置の内容と主記憶メモリの内容とが一致していることの検証、（２）主記憶メモリに読み込まれたプログラムが当初と同一の内容であることの継続的な検証、からなる。
【特許文献１】特願第２００７−１２５２９７号
【特許文献２】米国公開２００６／０２４０８８８号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、近年のオペレーティングシステムにおいては、動的メモリ確保と呼ばれる手法によって、オペレーティングシステムの基本部分であるカーネルが、単一のプログラムに対して非連続的なアドレスを有する主記憶メモリを割り当てることが行われている。これは多数のプログラムを順不同に並行して実行できる利点を有するが、従来の検証方法のように連続するアドレスの主記憶メモリを読み取って検証することができないという、課題が発生する。
【０００４】
本発明は、前記の問題を解消するため、動的メモリ確保の手法によって主記憶メモリを参照するオペレーティングシステムを有する情報処理装置において、カーネルの機能の一部として動作する検証プログラムが、検証されるプログラムの存在する主記憶メモリの内容を参照してプログラムを検証し、メモリ内容の破損、改ざんを検出することのできる、情報処理装置を提供することを目的とする。すなわち、本発明は、検証されるコンピュータプログラムがメモリ上に存在する期間を通じて破損、改ざんを受けていないことを保証することのできる、情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明に係る第１の態様によれば、遊技者が遊技に関する指示を入力することが可能な入力手段と、前記入力手段からの入力とコンピュータプログラムとにより遊技を制御する遊技制御手段と、遊技に関する情報を表示する表示手段とを備えた遊技機であって、前記遊技機は、情報処理装置を含み、前記情報処理装置は、前記コンピュータプログラムを検証し、主記憶メモリを有する情報処理装置であって、前記主記憶メモリに存在するコンピュータプログラムを含むデータの位置を示す情報を記憶するメモリ領域を参照し、前記データが存在する前記主記憶メモリの内容を第１のメモリ領域に検査符号として記憶し、所定のタイミングにおいて、前記主記憶メモリに存在する前記コンピュータプログラムを含むデータの位置を示す最新の情報を記憶するメモリ領域を参照し、前記コンピュータプログラムが存在する前記主記憶メモリの内容を第２のメモリ領域に検査符号として記憶し、前記第１のメモリ領域に記憶された検査符号と、前記第２のメモリ領域に記憶された検査符号とを照合し、前記照合の結果、一致しないと判定された場合には、前記検査符号が一致しないことを示すエラーを示す信号を出力するとともに、前記入力手段からの入力を停止することにより前記遊技制御手段による遊技の制御を停止させる一方で、前記照合の結果、一致すると判定された場合には、前記コンピュータプログラムを検証するコントローラを備える遊技機が提供される。
【０００６】
前記第１の態様に示したように、本発明の情報処理装置に含まれる主記憶メモリは、主記憶メモリに存在するコンピュータプログラムを含むデータの位置を示す情報を記憶するメモリ領域を参照することによって、前記コンピュータプログラムを含むデータが存在する前記主記憶メモリの内容を取得する、動的メモリ確保の手法によって管理される。この動的メモリ確保の手法を用いるオペレーティングシステムによって、主記憶メモリに存在するコンピュータプログラムに対して非連続的なアドレスを有する主記憶メモリの割り当てが行われても、本発明の情報処理装置においては、検証されるコンピュータプログラムが存在する主記憶メモリの位置の情報を参照して、検証されるコンピュータプログラムの内容を参照する。すなわち、本発明の情報処理装置においては、アドレスが連続するメモリを読み取って検証する従来の手法とは異なり、アドレスが非連続的でありうる主記憶メモリ中のコンピュータプログラムを検証する。
【０００７】
オペレーティングシステムは、コンピュータプログラムが動作するための基本プログラムである。オペレーティングシステム内部の基本部分はカーネルと呼ばれ、システムの資源の管理、ハードウェアとプログラムのやり取りの管理等を実行する。カーネル内部の個別の機能はシステムコールとして提供され、コンピュータプログラムから利用することができる。マルチタスク環境をサポートするオペレーティングシステムにおいて、カーネルは、動的メモリ確保の手法を実施し、複数のプログラムのそれぞれが自分自身のために使用するメモリのアドレスをページ単位で管理する。ページ単位で管理されたメモリを仮想メモリと呼ぶ。仮想メモリは論理的なアドレスの数値を有し、論理的なアドレスの数値は、電気配線として定義された物理的なアドレスとは別に定義される。
【０００８】
検証プログラムは、カーネルが提供するシステムコールを利用するか、またはカーネルの一部に組み込んで動作することにより、動的メモリ確保が実施されるオペレーティングシステムのカーネルの機能を利用して、該仮想メモリのページ数や各ページが存在するメモリアドレス等を記憶した仮想メモリテーブルを参照することで、該仮想メモリの内容を参照し、仮想メモリに存在する前記検証されるプログラムの内容を参照できる。
【０００９】
好適なオペレーティングシステムの例はＬｉｎｕｘである。これに限らず、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）、ＵＮＩＸ（登録商標）等から適宜選択できる。
【００１０】
検証プログラムをカーネルに組み込むための好適な手段は、Ｌｉｎｕｘオペレーティングシステムのカーネルに含まれ、カーネル内の変数の初期化に係るｓｗａｐｐｅｒ関数から検証プログラムを起動することである。別の好適な手段は、Ｌｉｎｕｘオペレーティングシステムのカーネルが提供するシステムコールのひとつであるｅｘｅｃｖｅ関数に、検証プログラムを組み込むことである。これらに限らず、検証プログラムを起動する、または組み込むカーネルの構成要素は適宜選択できる。
【００１１】
第１の態様に示した本発明の情報処理装置において、検証プログラムは、検証されるプログラムの存在する主記憶メモリの位置を示す仮想メモリテーブルを、検証のつど参照する必要がある。その理由は、仮想メモリテーブルは、複数のコンピュータプログラムを必要に応じて主記憶メモリに割り当てるカーネルの動作によって随時更新されるからである。すなわち、検証プログラムは、検証されるプログラムの存在する主記憶メモリの位置を示す、最新の仮想メモリテーブルを参照する。
【００１２】
前記第１の態様におけるコントローラは、アドレスバス、データバス、入出力許可論理、クロック入出力等の接続端子を備え、演算ユニット、制御ユニット、デコーダ等を内蔵し、データバスを介して受信したデータ及び命令セットを予め決められた手順で処理し、外部に接続された機器の動作に必要な情報や命令等を送信し、また外部の機器からの情報等を受信することのできる集積回路である。該コントローラは１個の集積回路でもよく、複数の入出力機能を備えて該コントローラと連動する周辺チップを伴ってもよく、追加機能を有するチップを内蔵した一体の統合コントローラでもよい。好ましいコントローラの例はインテル社製ＱＸ６７７型及び同社Ｐ３５型周辺チップであるが、これらに限らずに適宜、集積回路を選択して使用できる。
【００１３】
前記第１の態様のメモリ内容を検査する符号は、プログラムが存在するメモリの内容を代表するための数値であってよい。例えば、剰余演算を含むことにより最大値を制限したハッシュ関数を適宜設計して用い、予め決められたバイト数の該メモリ内容を代表する数値を計算してもよい。なお、用語「ハッシュ関数」は、ユーザ検証やデジタル署名等を目的として、データを代表する数値を得る操作または該数値を得るための関数を指すコンピュータ技術用語である。
【００１４】
前記第１の態様の、エラーを示す信号を出力することは、本発明の情報処理装置が有する通信インタフェースにエラーを示す情報を出力してもよく、本発明の情報処理装置が有する画像表示装置にエラーを示す情報を表示してもよく、本発明の情報処理装置が有するコントローラの論理として出力されてもよく、本発明の情報処理装置が有する入出力ポートの特定のアドレスの論理として出力されてもよく、本発明の情報処理装置が参照しうるメモリ領域の特定の数値を書き換える等の処理として行われてもよく、オペレーティングシステムが用意したメモリ領域の特定の数値を書き換える等の処理として行われてもよく、これらの組合せでもよい。情報処理装置の使用者に該エラーの発生を通知しうる手段であれば詳細は問わない。
【００１５】
前記第１の態様の、エラーを示す信号を出力することは、本発明の情報処理装置とともにネットワークに接続された他の情報処理装置に向けて出力してもよい。該信号は、論理を示す電気信号、位相変調された電気信号、周波数変調された電波、振幅変調された光信号等、情報伝送に用いることのできる信号から適宜選択できる。
【００１６】
前記第１の態様によって、本発明の情報処理装置は、メモリ上に存在し検証されるプログラムを所定のタイミングにおいて検証することができる。すなわち、検証されるプログラムを継続的に検証することで、該プログラムがメモリ上に存在する期間を通じて破損、改ざんを受けていないことを保証できる。
【００１７】
本発明に係る第２の態様によれば、前記第１のメモリ領域及び前記第２のメモリ領域の符号の一致を、前記コントローラが実行するプログラムにより判定する、遊技機が提供される。
【００１８】
前記第２の態様は、２つのメモリ内容の一致を判定するプログラムを実行するコントローラが、２つのメモリ内容の一致を判定しうる手段から適宜選択できる。例えば、２つのメモリ内容の比較を実行することで一致を判定できる。該比較においては、コントローラが有する命令セットに含まれる比較命令を用いてもよく、オペレーティングシステムが提供するサービスコール等に含まれる比較の機能を用いてもよく、検証プログラムのソースコードを実行形式に変換するコンパイラ環境が提供する比較関数を用いてもよく、オペレーティングシステム上で動作するスクリプト言語が提供する比較演算子を用いてもよく、比較対象のメモリ内容を比較しうる手段は適宜選択できる。他の手段としては、２つのメモリ内容を数値として扱い、差がゼロであることを判定してもよい。２つのメモリ内容の一致を判定できる手段であれば、その詳細は問わない。
【００１９】
前記第２の態様によって、本発明の情報処理装置は、検証されるプログラムが破損、改ざんを受けていないことを、２つのメモリ内容の一致として判定できる。
【００２０】
本発明に係る第３の態様によれば、請求項１に記載の遊技機であって、前記コントローラは、前記コンピュータプログラムの動作を制限するプログラムを実行する、遊技機が提供される。
【００２１】
前記第３の態様のコンピュータプログラムの動作の制限は、オペレーティングシステムが有するプログラム管理機能を利用して、破損または改ざん等が発見されたメモリ中プログラムに対して動作を停止する等の処理を行ってもよく、該プログラムが存在するメモリ領域へのアクセスを管理者権限に限定して一般ユーザからアクセス不可にする等の処理を行ってもよい。
【００２２】
前記第３の態様によって、本発明の情報処理装置は、破損または改ざん等が発見されたプログラムが情報処理装置に影響を及ぼすことを防ぐことができ、特にメモリに影響を及ぼすことを防ぐことができる。
【００２３】
本発明に係る第４の態様によれば、請求項１に記載の遊技機であって、前記コントローラは、当該情報処理装置の動作を制限するプログラムを実行する、遊技機が提供される。
【００２４】
前記第４の態様の制限は、コントローラが実行するプログラムによって入出力ポートを読み書き禁止に設定する等の処理により行ってもよい。
【００２５】
前記第４の態様のコントローラが実行するプログラムは、オペレーティングシステムに対して自動シャットダウン等の処理を実行するよう通知し、情報処理装置をシャットダウンしてもよい。
【００２６】
前記第４の態様によって、本発明の情報処理装置は、破損または改ざん等が発見されたプログラムが情報処理装置に影響を及ぼすことを防ぐことができ、特にシステムバスを経由して接続された機器に影響を及ぼすことを防ぐことができる。
【００２７】
本発明に係る第５の態様によれば、請求項１に記載の遊技機であって、前記第１のメモリ領域及び前記第２のメモリ領域が記憶する検査符号として、ＣＲＣを用いた、遊技機が提供される。
【００２８】
前記第５の態様の検査符号であるＣＲＣは、１６ビット幅でも３２ビット幅でも他のビット幅でもよい。本発明の情報処理装置においてコンピュータプログラムの検証に用いるＣＲＣ値を算出することができれば、ＣＲＣ値の生成式は特に問わない。なお、用語「ＣＲＣ」は、巡回冗長検査（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）を意味する英語の略語であり、記憶媒体間のデータのコピー、通信回線を経由するデータ送受信等における誤りを検出するための誤り検出符号の一種を指すコンピュータ技術用語である。
【００２９】
前記第５の態様によって、本発明の情報処理装置は、３２ビット幅等の数値が一致することをもってプログラムを検証するので、複数のメモリ領域にわたって存在するプログラムを丸ごと検証する作業と比較して、検証に要するコントローラの作業を軽減することができ、これによって、迅速な検証を実現できる。特に、遊技機において遊技プログラムの実行中に、定期的、継続的に検証プログラムを並行して実施しても、遊技プログラムの機能及び性能への制約の発生を最小限にできる。
【００３０】
本発明に係る第６の態様によれば、前請求項１に記載の遊技機であって、前記所定のタイミングを、検証されるコンピュータプログラムに対して独立して発生するタイミング信号を利用するプログラムを用いて決定する、遊技機が提供される。
【００３１】
前記第６の態様のタイミング発生回路は、情報処理装置に組み込まれたＲＴＣ（リアルタイムクロック）回路を用いてもよく、情報処理装置のシステムバスにタイミング発生回路を接続して用いてもよく、検証プログラムのソースコードを実行形式に変換するコンパイラ環境が提供する時間関数を用いてもよく、本発明の情報処理装置に対してネットワーク接続された他のコンピュータシステムが送信する時間情報を用いてもよい。検証されるコンピュータプログラムに対して独立して発生するタイミング信号を利用するプログラムを用いる手段を適宜選択できる。
【００３２】
前記第６の態様によって、本発明の情報処理装置は、プログラムを検証するタイミングを、情報処理装置のコントローラの動作と独立した時間情報を有する回路、関数、外部機器から得ることができる。すなわち、コントローラが検証プログラム以外の処理を実行している期間においても、定期的な検証の必要が発生したことをコントローラに通知することができる。これによって、本発明の情報処理装置におけるプログラムの検証は、継続的、定期的であることを保証できる。
【００３３】
本発明に係る第７の態様によれば、コンピュータプログラムにより遊技を制御する遊技制御手段と、遊技に関する情報を表示する表示手段とを備えた遊技機であって、請求項１から６のいずれかに記載の情報処理装置を含み、当該情報処理装置は当該コンピュータプログラムを検証する、遊技機が提供される。
【００３４】
前記第７の態様の遊技機は、コンピュータプログラムによって実行される遊技制御手段を備え、遊技機使用者に遊技サービスを提供する装置である。該コンピュータプログラムは、前記第１の態様から前記第６の態様のいずれかに記載の情報処理装置によって検証される。該情報処理装置は、動的メモリ確保を実施するオペレーティングシステムにおいて、メモリ内に存在するプログラムを検証する。
【００３５】
前記第７の態様によって、本発明の遊技機は、前記第１の態様から前記第６の態様のいずれかに記載の情報処理装置によって、動的メモリ確保を実施するオペレーティングシステムにおいて、遊技を制御するコンピュータプログラムを検証することができる。すなわち、本発明の遊技機は、遊技を制御するプログラムが破損または改ざん等を受けていないことを、起動時に保証し、動作期間を通じて、定期的、継続的に保証することができる。
【発明の効果】
【００３６】
本発明によれば、動的メモリ確保を経由する検証作業によって、情報処理装置の起動時点において、また稼動中の所定のタイミングにおいて、動的メモリ確保を経由して実行されるプログラムに対する破損、改ざん等を検出し、破損、改ざん等が検出されたプログラムの動作を制限する情報処理装置を提供することができる。本発明は、当該プログラムがメモリ上に存在する期間を通じて破損、改ざんを受けていないことを保証できる、情報処理装置を提供することができる。
本発明によれば、コンピュータプログラムによって実行される遊技制御手段を備えた遊技機において、該コンピュータプログラムに対する破損、改ざん等を、起動時及び動作期間を通じて検出できる。本発明は、遊技機において遊技を制御するプログラムを、遊技機の起動時に保証し、遊技機の動作期間を通じて、定期的、継続的に保証することができる。
【発明を実施するための最良の形態】
【００３７】
以下、本発明の実施形態について説明する。なお、これはあくまでも一例であって、本発明の技術的範囲はこれに限られるものではない。
【００３８】
＜実施例１＞
本発明の一実施形態は、コンピュータプログラムが存在する主記憶メモリの位置の情報を仮想メモリテーブルから取得し、前記主記憶メモリの内容を参照して検査符号に置き換えて配列に記憶し、定期的に最新の仮想メモリテーブルの情報から前記コンピュータプログラムが存在する前記主記憶メモリの内容を参照して検査符号に置き換え、前記配列の記憶と前記検査符号が一致することを判定し、一致しない場合は前記コンピュータプログラムの動作を制限し、一致する場合は前記コンピュータプログラムを検証する情報処理装置である。
【００３９】
＜実施例２＞
本発明の別の実施形態は、コンピュータプログラムによって遊技を制御し遊技に関する情報を表示し前記情報処理装置を含んで遊技のための前記コンピュータプログラムを初動時及び定期的継続的に検証する遊技機である。
【００４０】
＜実施例３＞
実施例３では、本発明の情報処理装置が、検証されるコンピュータプログラムを所定のタイミングにおいて検証することを示す。
【００４１】
図１は、本発明の情報処理装置が所定のタイミングにおいてコンピュータプログラムを検証することを示すフロー図である。
【００４２】
図１に示したフロー図の全体は、Ｌｉｎｕｘオペレーティングシステムのカーネルを構成する、図示しないｓｗａｐｐｅｒ関数から呼び出されるか、またはｓｗａｐｐｅｒ関数が呼び出す、カーネルを構成する他の関数から呼び出される。例えば、システムコールに含まれる図示しないｅｘｅｃｖｅ関数から呼び出される。したがって、本発明の情報処理装置に含まれる、コンピュータプログラムを検証するプログラムは、カーネルの機能を利用でき、カーネルによる動的メモリ確保の手法で仮想メモリ中に使用領域を割り当てられたコンピュータプログラムの存在する主記憶メモリの位置の情報を参照できる。すなわち、主記憶メモリに存在する当該コンピュータプログラムの内容を参照することができる。
【００４３】
図１において本発明の情報処理装置は、情報処理装置が備えるコントローラを用いて、コントローラに対する割り込みを許可し（ステップＳ１）、検証プログラム開始直後の初回プログラムテーブル、すなわち実行中の全てのプログラムの線形リスト形式テーブルを取得し、各プログラムが指し示すメモリ内容のＣＲＣを計算し、値を配列Ａに記憶する（ステップＳ２）。次に、情報処理装置は、プログラムの追加の有無を判定し（ステップＳ３）、追加プログラムがある場合は該追加プログラムの仮想メモリテーブルを取得し、該追加プログラムが指し示すメモリ内容のＣＲＣを計算し、値を配列Ａに追加して記憶する（ステップＳ４）。ステップＳ３においてプログラムの追加がない場合は、次に、ＲＴＣの割り込みが発生したかを判定する（ステップＳ５）。情報処理装置は、ＲＴＣの割り込み発生が生じた場合に、ステップＳ５から次のステップＳ６に進行する。すなわち、情報処理装置は、メモリ中に存在する１つのプログラムが使用する仮想メモリのテーブルを取得する（ステップＳ６）。次に、情報処理装置は、該テーブルに含まれる該プログラムの実行可能フラグが真であることの真偽を判定し（ステップＳ７）、真である場合は仮想メモリテーブルが指し示すメモリ内容のＣＲＣを計算し、値を配列Ｂに記憶する（ステップＳ８）。次に、情報処理装置は、検証されるプログラムに対して計算した配列Ａに含まれるＣＲＣ値と、配列Ｂに含まれるＣＲＣ値が一致するかを判定し（ステップＳ９）、一致する場合はプログラム内の最終メモリまで調べたかを判定し（ステップＳ１１）、最終メモリまで調べた場合は、次に、ステップＳ２で取得したテーブルにおける次のプログラムのテーブル情報を取得する（ステップＳ１２）。次に、全てのプログラムの検証を終了したことの真偽を判定する（ステップＳ１３）。
【００４４】
Ｓ７において実行可能フラグが真でない場合はＳ１１を実行する。Ｓ９において配列Ａに含まれる値と配列Ｂに含まれる値が等しくない場合はエラー処理（ステップＳ１０）を実行する。Ｓ１１においてプログラム内の最終メモリまで調べていない場合はＳ７に戻る。Ｓ１３において偽であればＳ７に戻る。Ｓ１３において真であればＳ３に戻る。Ｓ５においてＲＴＣの割り込みがなければＳ３に戻る。
【００４５】
前記ステップＳ９の判定が一致し、ステップＳ１３の判定が真であれば、全てのプログラムが検証されたことになる。検証された結果は、例えば、図２に示した外部記憶装置１５に保存する等のプログラムを用意して適宜保存できる。
【００４６】
ステップＳ５は、後述する図２に示す通信インタフェース２２を介して接続された外部の機器からの信号受信を調べるステップに置き換えることも可能であり、該信号受信とＲＴＣ割り込みを適宜選択できる。
【００４７】
図１に示した本発明の情報処理装置の検証プログラムは、ステップＳ５で処理されるＲＴＣ割り込みが発生するまで、Ｓ３からＳ５までのループを繰り返して待機し続ける。
【００４８】
ステップＳ５からステップＳ３へ戻る場合、及び、ステップＳ１３からステップＳ３へ戻る場合のいずれにおいても、ステップＳ２は含まれないため、Ｓ２において取得した配列Ａに含まれる初回のＣＲＣ値は、検証プログラムの動作期間中に保存される。
【００４９】
このようにして、本発明の情報処理装置は、メモリ中に存在する全てのプログラムに対して、それぞれのプログラムごとに初回に計算したＣＲＣ値を含む配列Ａと、繰り返して継続的に再計算した同一プログラムのＣＲＣ値を含む配列Ｂとが一致することを検証し続ける。これによって、本発明の情報処理装置は、検証されるプログラムがメモリ中に存在する期間中において、継続的、定期的に該プログラムに対する破損、改ざんを検出し、該プログラムを検証し続けることができる。したがって、本発明の情報処理装置においては、検証プログラムが動作する期間中において、検証されるプログラムが破損、改ざんを受けていないことを継続的に保証できる。
【００５０】
本発明の情報処理装置において、検証プログラムに含まれるＣＲＣ値の一致の判定を開始するタイミングは、独立した時間情報を出力するリアルタイムクロック（ＲＴＣ）を利用して決定しうるので、定期的にプログラムを保証することができる。
【００５１】
図２は、本発明の情報処理装置の構成を示す図である。
情報処理装置１は、情報処理装置１の内部に設けられた電子機器が必要とする電力を供給するための電源ユニット１９を備える。コントローラ１０は情報処理装置１の内部に設けられ、情報処理装置１が電源投入後またはリセット後に起動する時に読み出す、初期設定に係る編集可能な情報等を記憶したＣＭＯＳ  ＲＡＭ１１、基本入出力等のブート動作に係る情報を記憶したＢＩＯＳ  ＲＯＭ１２、主記憶メモリ１３、クロック発生回路１４を備える。さらに、コントローラ１０はシステムバス２７を経由して、外部記憶装置１５、拡張インタフェース１６、コントロールパネル１８、ＲＴＣ２１、通信インタフェース２２、画像制御回路２３、音制御回路２５と接続する。拡張インタフェース１６には、必要に応じて情報処理装置１の機能を追加しうる機能拡張ボード１７を接続することができる。
【００５２】
主記憶メモリ１３は、メモリバス３０を介してコントローラ１０の主記憶として機能する。以下、特に限定しない用語「メモリ」は該主記憶メモリ１３を指す。
ＲＴＣ２１は、リアルタイムクロック回路であり、バッテリ２８を内蔵し、電源ユニット１９が停止状態にあっても動作し続け、コントローラ１０の動作に対して非同期的に動作し、時間情報を出力する。
クロック発生回路１４は、コントローラ１０の動作クロックを発生する回路である。クロック発生回路１４は、任意に分周回路を内蔵できる。
機能拡張ボード１７は、拡張インタフェース１６を介してコントローラ１０の機能を利用する追加の遊技ボード等を含む。
画像制御回路２３には、画像表示装置２４が接続される。
音制御回路２５には、スピーカ２６が接続される。音制御回路２５は、ＢＩＯＳ  ＲＯＭ１２に記憶されたブート動作に係るプログラムの実行時に発生したエラー等を使用者に通知するためのビープ音を発生する回路、デジタル音声データをアナログ音声信号に変換して振幅を増減する回路、または類似の回路、またはこれらの組合せである。スピーカ２６は適宜選択できる。
【００５３】
情報処理装置１が初期状態からの動作後に、すなわち、電源投入後またはリセット後に起動すると、本発明の情報処理装置において、基本入出力を定義したＢＩＯＳ  ＲＯＭ１２の内容に従い、コントローラ１０は外部記憶装置１５及び主記憶メモリ１３の接続を確認し、外部記憶装置１５に記憶された図示しないオペレーティングシステムを起動し、外部記憶装置１５から主記憶メモリ１３にファイルをコピーする。
【００５４】
オペレーティングシステムは、コントローラ１０、主記憶メモリ１３、外部記憶装置１５等の情報処理装置１に含まれる機器が、マルチタスク環境で動作するための基本プログラムである。オペレーティングシステムは、動的メモリ確保を行い、主記憶メモリ１３の中に存在する複数のプログラムのそれぞれが自分自身のために使用するメモリのアドレスをページ単位で管理する。さらに、オペレーティングシステムは、個々のプログラムに独立に、プログラムＩＤ、ユーザＩＤ、実行可能フラグ、仮想メモリページ数、仮想メモリ開始ページ番号、等の情報を定型的な形式で付与し、プログラムを管理する。
【００５５】
前記定型的な形式の好適な例は、一列に並んだデータを表現するデータ構造のひとつである、線形リストである。
【００５６】
通信インタフェース２２は、情報処理装置１に対する情報の送受信を行いうる外部機器と、予め決められた形式の信号を用いて通信する機能を有する。該予め決められた形式の信号は、国際電気通信連合電気通信標準化部門（略称ＩＴＵ−Ｔ）勧告に記載の信号、１００Ｂａｓｅ−Ｔ等のツイストペア線を用いるイーサネット（登録商標）規格に順じた信号、他のイーサネット規格に準じた信号、Ｂｌｕｅｔｏｏｔｈ規格に準じた信号、通信手段に電波や赤外線や光を用いた信号、これらの規格に準じた信号のいずれか、またはこれらの組合せを含む。
【００５７】
通信インタフェース２２は、コントローラ１０が実行するプログラムから利用可能な、本発明に係る検証プログラムを所定のタイミングに起動するための開始信号を受信することができる。
【００５８】
図３は、本発明の情報処理装置の外観の例を示す斜視図である。情報処理装置４１は筐体４２を有し、筐体の正面側に画像表示装置２４、コントロールパネル１８、スピーカ２６を有している。本発明の情報処理装置は、コントロールパネル１８によってユーザの操作を受け付け、必要な情報等を画像表示装置２４に表示する。本発明の情報処理装置は、検証されるコンピュータプログラムに破損、改ざん等を発見した場合には画面表示装置２４に検出した内容の情報を表示してもよく、スピーカ２６を用いてエラーが発生したことを使用者に放置する音声信号を出力してもよい。
【００５９】
本発明の情報処理装置は、特に、遊技動作実行手段と、遊技を制御する手段と、遊技に関する表示手段とを備えた遊技機に含まれることができ、前記ユーザの操作及び前記画像表示に、スピーカ２６からの音出力を伴って遊技サービスを提供することができる。
【００６０】
本発明の、コンピュータプログラムを検証する情報処理装置は、前記遊技機以外の装置に含まれることもできる。例えば、現金預払機、有価証券発行機、証票発行機等に、本発明の情報処理装置を含むことができる。
【００６１】
本発明の情報処理装置が、検証されるコンピュータプログラムを検証することを開始するタイミングは、図２に示したＲＴＣ２１が発生するタイミング信号を用いるのが好適である。これ以外にも、ＲＴＣ２１が発生するタイミング信号を処理するプログラムが出力する論理、また通信インタフェース２２を介して本発明の情報処理装置と接続した他の情報処理装置から受信した信号、またはこれらの組合せ、またはこれらを組合せた論理を用いることができる。
【００６２】
図４は、本発明の情報処理装置が検証するプログラムが参照する、主記憶メモリのアドレスを指し示すための線形リストの例を示すテーブルである。線形リストは、１つのプログラムに対して１つのリストが作成される。図４は、３個のプログラムについて作成されたリストを示したが、これに限らずプログラムの個数と同数のリストが存在できる。例えば、プログラムＩＤ−１（Ｔ１）を有するプログラムのリストは、プログラム名Ｔ２、ユーザ名Ｔ３、実行可能フラグＴ４を有する。このプログラムがＮページの仮想メモリを使用することが、前記リスト中の仮想メモリページ数Ｔ５に記され、仮想メモリ第１ページのアドレスＴ６、仮想メモリ第ＮページのアドレスＴ７等が前記リストに含まれる。別のプログラムＩＤを有するプログラムに対しても同様にリストが作成される。
【００６３】
該線形リストが有するページ単位のメモリアドレスは、動的メモリ確保を行うオペレーティングシステムのメモリ管理方法によって生成されるものである。したがって、該線形リストを参照することにより、動的メモリ確保が行われるオペレーティングシステムにおいて、特定のプログラムが指し示す仮想メモリのアドレスを知ることができる。
【００６４】
図５は、前記図１を用いて説明した検証におけるエラー処理を示すフロー図である。該エラー処理においては、初期のＣＲＣ値と検証時点でのＣＲＣ値が一致しないプログラムを動作停止し（ステップＳ２１）、該プログラムが存在することをオペレーティングシステムに通知し（ステップＳ２２）、エラーを示す信号を出力する（ステップＳ２３）。次に、例えば、メモリ中に存在し続けることが情報処理装置の動作にとって危険であるようなプログラムに係る情報データベースを用い、即時シャットダウンを必要とする状況であるかを判定し（ステップＳ２４）、偽である場合はエラー処理を終了する。
【００６５】
ステップＳ２４において真である場合は、情報処理装置の動作情報を外部記憶装置に記録し（ステップ２５）、情報処理装置をシャットダウンするようオペレーティングシステムに通知する（ステップ２６）。
【００６６】
ステップＳ２２は、本発明の第３の態様として示した、本発明の情報処理装置が備えるコントローラがコンピュータプログラムの動作を制限するプログラムを実行することのステップである。ステップＳ２６は、本発明の第４の態様として示した、本発明の情報処理装置が備えるコントローラが情報処理装置の動作を制限するプログラムを実行することのステップである。
【００６７】
ステップＳ２３の、エラーを示す信号を出力するステップは、図２に示した画像制御回路２５への電気信号として出力し、画像情報表示装置２４に所定の文字情報、画像情報等を表示して、検証されるプログラムに破損または改ざん等が発生したことを使用者に通知してもよい。また、ステップＳ２３の、エラーを示す信号を出力するステップは、図２に示した音制御回路２５への電気信号を出力し、スピーカ２６から音声信号として使用者への通知を行ってもよい。さらに、ステップＳ２３の、エラーを示す信号を出力するステップは、図２に示した通信インタフェース２２を介し、ネットワーク接続された他の情報処理装置に向けて、位相変調した電気信号、周波数変調された電波、振幅変調された光信号等の情報伝送に用いうる信号により、使用者への通知を行ってもよい。
【００６８】
このようにして、本発明の情報処理装置においては、継続的に繰り返し検証する期間中の、検証されるプログラムの破損、改ざん等を検出し、破損、改ざん等を発見した場合にはプログラムの動作を制限することができる。さらに、本発明の情報処理装置においては、検証されるプログラムの破損、改ざん等を発見した場合には、情報処理装置の動作を制限することができる。
【００６９】
＜実施例４＞
実施例４では、本発明の情報処理装置が起動時にコンピュータプログラムを検証することを示す。
【００７０】
図６に、本発明の情報処理装置が初期状態からの起動後においてコンピュータプログラムを検証する、フロー図を示す。
【００７１】
本発明の情報処理装置は、オペレーティングシステムが取り扱う情報の単位であるファイルを操作の対象とし、外部記憶装置から複数のファイルをメモリ領域Ｘにコピーする（ステップＳ３１）。このとき、該ファイルは、図４に示したテーブルに含まれる実行可能フラグＴ４が真であるコンピュータプログラムである場合があり、また該実行可能フラグＴ４が偽である数値や文字である場合がある。また、メモリ領域Ｘは動的メモリ確保によって主記憶メモリにおけるアドレスの情報を管理される。次に、該情報処理装置は、再び、外部記憶装置から同一のファイルをメモリ領域Ｙにコピーする（ステップＳ３２）。メモリ領域Ｙも同様に動的メモリ確保の下にある。次に、情報処理装置は、メモリ領域Ｘの内容とメモリ領域Ｙの内容が一致することの真偽を判定し（ステップＳ３３）、真であれば終了する。Ｓ３３が偽であれば一致しない内容の実行可能フラグの論理値を偽に設定し（ステップＳ３４）、情報処理装置の入出力を制限し（ステップＳ３５）、一致しない内容が存在したことをオペレーティングシステムに通知し（ステップＳ３６）、エラーを示す信号を出力し（ステップＳ３７）、終了する。
【００７２】
前記ステップＳ３３の結果が一致すれば、情報処理装置の起動時にファイルが検証されたことになる。すなわち、ファイルに含まれるプログラムが検証される。検証された結果は、例えば、図２に示した外部記憶装置１５に保存する等のプログラムを用意して適宜保存できる。
【００７３】
ステップＳ３４は、本発明の第３の態様として示した、本発明の情報処理装置が備えるコントローラがコンピュータプログラムの動作を制限するプログラムを実行することのステップである。ステップＳ３５は、本発明の第４の態様として示した、本発明の情報処理装置が備えるコントローラが情報処理装置の動作を制限するプログラムを実行することのステップである。
【００７４】
ステップＳ３７の、エラーを示す信号を出力するステップは、前述の図５に示したステップＳ２３と同様である。
【００７５】
このようにして、本発明の情報処理装置においては、検証されるファイルが外部記憶装置から主記憶メモリ上にコピーされる期間における検証を行うことができる。すなわち、情報処理装置の起動時点において、該期間を通じて検証されるファイルが破損、改ざんを受けていないことを保証できる。
【００７６】
＜実施例５＞
実施例５では、本発明の情報処理装置に含まれるコントローラが実行するプログラムにより、２つのメモリ内容の一致が判定されることを示す。
【００７７】
図２に示したコントローラ１０は、実施例３に示したように、本発明の情報処理装置において動的メモリ確保を実施するカーネルの機能を利用し、主記憶メモリを参照する。
【００７８】
本発明の情報処理装置は、実施例４で述べたように、初期状態からの起動時において、検証されるファイルが外部記憶装置から主記憶メモリ上にコピーされる期間における検証を行うことができる。さらに本発明の情報処理装置は、実施例３で述べたように、検証されるプログラムがメモリ中に存在する期間において、検査符号をもちいて、定期的、継続的に、破損、改ざん等の検出を実行して該プログラムを検証することができる。
【００７９】
これらの検証は、前述したように、実施例４では図６のステップＳ３３において、２つのメモリ領域が一致することの真偽を判定し、実施例３では図１のステップＳ９において、２つの検査符号が一致することの真偽の判定として行われる。
【００８０】
本発明の情報処理装置に含まれるコントローラは、コントローラ自体が有する命令セット、オペレーティングシステムが提供するサービスコール、プログラムをソースコードから実行形式に編集するコンパイラが提供する関数、オペレーティングシステム上で稼動するスクリプト言語が提供する演算子等、またはこれらの組合せを利用しうる。該コントローラは、例えば、２つのメモリ内容を比較して同一であることを判定できる。別の例では、該コントローラは、該コントローラが有する命令セットに含まれる整数演算の命令を用いて、該コントローラが演算できる情報量の単位ごとに２つのメモリ内容をそれぞれ分割し、相互の差を計算し、全ての分割についての相互の全ての差がゼロであることをもって、２つのメモリ内容が同一であることを判定できる。
【００８１】
このようにして、比較命令または差分計算を含むプログラムを、本発明の情報処理装置に含まれるコントローラに実行させることにより、本発明の情報処理装置において２つのメモリ内容が同一であることを判定できる。
【００８２】
さらに、本発明の情報処理装置における検証プログラムは、動的メモリ確保を実施するカーネルの機能を利用する。該検証プログラムの内部に、前記２つのメモリ内容が同一であることを判定するプログラムを含ませることで、前記２つのメモリ内容が同一であることを判定するプログラムは、動的メモリ確保の手法でメモリ管理されたコンピュータプログラムが存在する主記憶メモリの内容を参照できる。
【００８３】
前記２つのメモリ内容が同一であることを判定するプログラムは、主記憶メモリの内容を参照できるので、検査符号が存在する主記憶メモリを参照することができる。したがって、図１を用いて説明したステップ９の、２つの検査符号が一致することの真偽の判定は、前記２つのメモリ内容が同一であることを判定するプログラムに含まれる。
【００８４】
＜実施例６＞
実施例６では、本発明の情報処理装置に含まれるコントローラが実行するプログラムによって、検証されるコンピュータプログラムの動作が制限されることを示す。
【００８５】
実施例３において説明し、図１を用いてステップＳ７に示したように、検証プログラムは検証されるコンピュータプログラムが存在する主記憶メモリの位置を示す仮想メモリテーブルを参照し、実行可能フラグの真偽を判定する。
検証されるコンピュータプログラムは、メモリ上に存在する期間において実行可能な状態であるときに、仮想メモリテーブル中の実行可能フラグが論理値の真である。図５を用い、ステップＳ２１に示したように、前記期間におけるエラー処理は、ＣＲＣ値の一致しないプログラムの動作を停止させることを含む。
【００８６】
さらに、実施例４において説明し、図６を用いてステップＳ３４に示したように、外部記憶装置からメモリ領域にファイルがコピーされる期間において、検証されるプログラムに対する破損、改ざん等が検出された場合のエラー処理は、一致しないメモリ内容の実行可能フラグを論理値の偽に設定し、検証されるプログラムの動作を禁止することを含む。
【００８７】
これらの停止及び禁止は、動的メモリ確保を実施するカーネルを利用し、検証されるプログラムが存在する仮想メモリを参照するコントローラが実行する検証プログラムによって行われる。すなわち、本発明の情報処理装置に含まれるコントローラが実行する検証プログラムは、検証されるプログラムに破損、改ざん等が検出された場合に、カーネルのプログラム管理機能を利用して、該検証されるプログラムの動作を制限することができる。
【００８８】
＜実施例７＞
実施例７では、本発明の情報処理装置に含まれるコントローラが実行するプログラムによって、当該情報処理装置の動作が制限されることを示す。
【００８９】
実施例３において説明し、図５を用いてステップＳ２５に示したように、検証されるプログラムがメモリ上に存在する期間において、検証されるプログラムに破損、改ざん等が検出された場合のエラー処理は、情報処理装置のシャットダウンをオペレーティングシステムに通知することを含む。
【００９０】
さらに、実施例４において説明し、図６を用いてステップＳ３５に示したように、外部記憶装置からメモリ領域にファイルがコピーされる期間において、検証されるプログラムに対する破損、改ざん等が検出された場合のエラー処理は、情報処理装置の入出力を制限することを含む。例えば、破損、改ざん等が検出され停止されたコンピュータプログラムを再度起動できないよう、図２に示したコントロールパネル１８からの入力を適宜停止させる。
【００９１】
本発明の情報処理装置に含まれるコントローラが実行するプログラムは、検証されるプログラムの破損、改ざん等を検出した場合に、シャットダウンを通知し、入出力を制限することによって、情報処理装置の動作を制限することができる
【００９２】
＜実施例８＞
実施例８では、本発明の情報処理装置が、前記第１の態様において、前記第１のメモリ及び前記第２のメモリが記憶する検査符号として、ＣＲＣを用いることを示す。
【００９３】
ＣＲＣは、磁気記憶媒体からメモリへのデータの転送等において、誤り検出符号として広く用いられる。本発明の情報処理装置においては、検証されるプログラムの内容を、例えば３２ビット幅のＣＲＣ値によって代表する。これは、例えば、数１００キロバイトの主記憶メモリを使用するコンピュータプログラムの内容を、３２ビットの数値１個によって代表することを意味する。該コンピュータプログラムを定期的、継続的に検証する手段は、所定のタイミングに該コンピュータプログラムが存在する主記憶メモリの位置を示す仮想メモリテーブルを用いて、該コンピュータプログラムが存在する主記憶メモリの内容を参照し、再び３２ビットの数値１個を算出して、初回の３２ビットの数値と同一であることを判定する。すなわち、数１００キロバイトのメモリ内容を記憶して検証することをせず、３２ビットの数値を記憶して検証する。
【００９４】
本発明の情報処理装置においては、初回検証におけるＣＲＣ値と、定期的、継続的検証におけるＣＲＣ値の、２つのＣＲＣ値の一致を判定した場合に、検証されるコンピュータプログラムに破損、改ざん等が生じていないことを保証する。
【００９５】
このようにして、ＣＲＣ値が一致することを検証に用いることによって、本発明の情報処理装置は、継続的、定期的なプログラムの検証を迅速に行うことができる。したがって、本発明の情報処理装置の検証プログラムは、情報処理装置が備えるコントローラが、検証プログラム以外の処理を実行している期間中においても、その処理性能の低下を抑えて、プログラムの検証を行うことができる。
【００９６】
＜実施例９＞
実施例９では、本発明の情報処理装置が、前記所定のタイミングの決定を、検証されるコンピュータプログラムに対して独立して発生するタイミング信号を利用するプログラムを用いて行うことを示す。
【００９７】
前記タイミング信号の好適な例はＲＴＣ回路の出力を用いることである。ＲＴＣはリアルタイムクロック回路であり、バッテリ２８を内蔵して電源ユニット１９が停止状態にあっても動作し続け、コントローラ１０の動作に対して非同期的に動作し、時間情報を出力する。
【００９８】
典型的なＲＴＣチップの例はＭＡＸＩＭ社Ｄ−１３０２型であるが、これに限らず、コントローラの動作クロックに対して非同期に動作するものを適宜選択して本発明の情報処理装置に使用できる。ＲＴＣはコントローラと独立した回路でありうるので、例えば、本発明の情報処理装置が備える拡張インタフェースを介する、機能拡張ボードとして提供されてもよい。
【００９９】
実施例３において、図１を用いて説明したステップＳ５は、ＲＴＣからの割り込みを判定するステップであり、前述のように検証プログラムはステップＳ３からステップＳ５を繰り返して待機する。ＲＴＣからの割り込みは、ＲＴＣが内蔵するバッテリで駆動する回路が独自に時間情報を出力して発生するので、繰り返して待機する検証プログラムの動作とは非同期である。
【０１００】
例えば、ＲＴＣがＨＨ：ＭＭ：ＳＳ形式で、時間：分：秒の数値を出力し、１秒に１回の割合で秒の数値を１ずつインクリメントさせる場合、秒の数値を２進数として扱うと、最下位ビットは２秒に１回の割合で真から偽に論理を反転させる。これをコントローラへの割り込みに使用することで、２秒に１回の頻度で、検証プログラムをステップＳ５からステップＳ６へ進行させる条件を発生させることができる。
【０１０１】
前記頻度は、使用するＲＴＣによって、ＲＴＣの出力データを変換しうる論理回路の追加によって、ＲＴＣの出力データを変換しうるプログラムによって、適宜設計できる。例えば、プログラムをソースコードから実行形式に編集するコンパイラが提供する、ＲＴＣからの出力データを参照する関数の計算値をさらに整数倍する等の計算処理によって、前記頻度を制御してもよい。
【０１０２】
このようにして、ＲＴＣ割り込みを待機するプログラムを用いて、コントローラの動作クロックに対して非同期であるタイミングに、検証されるプログラムを、定期的に検証することができる。
【０１０３】
検証プログラムが全ての検証されるプログラムの検証を行うと、図１のステップＳ１３を用いて説明した分岐にしたがい、検証プログラムは、終了することなく、再びステップＳ３からステップＳ５を繰り返して待機する。したがって、本発明の情報処理装置は、検証されるプログラムを、継続的に検証することができる。
【０１０４】
上述のように、本発明の情報処理装置は、プログラムを検証するタイミングを、情報処理装置のコントローラの動作と独立した時間情報を有する回路、関数、外部機器から得ることができる。すなわち、コントローラが検証プログラム以外の処理を実行している期間においても、定期的な検証の必要が発生したことをコントローラに通知することができる。これによって、本発明の情報処理装置は、定期的、継続的にプログラムを検証することができる。
【０１０５】
ステップＳ５は、図２に示した通信インタフェース２２を介して接続された外部の機器からの信号受信の有無を判定するステップに置き換えてもよく、該信号受信とＲＴＣ割り込みを適宜選択してもよい。
【０１０６】
＜実施例１０＞
実施例１０では、コンピュータプログラムにより遊技を制御する遊技制御手段と、遊技に関する情報を表示する表示手段とを備え、本発明の情報処理装置を含み、当該情報処理装置が当該コンピュータプログラムを検証する、遊技機の構成を示す。
【０１０７】
図７に、本発明の情報処理装置を含む、本発明の遊技機の構成を示す。図２と重複する箇所の説明は省略する。
【０１０８】
遊技機４０は、情報処理装置１を含み、コイン投入を調べるコインセンサ３３、外部機器との通信のための通信ポート３４を備えることができる。通信ポート３４は情報処理装置の通信インタフェース２２と接続している。好適な通信ポート３４の例は、１００Ｂａｓｅ−Ｔ形式の信号を介するツイストペアケーブルを接続可能なネットワーク接続端子である。
【０１０９】
遊技機４０は、外部記憶装置１５に記憶されたコンピュータプログラムを用い、コントロールパネル１８からの使用者の入力操作をもとに遊技を制御し、画像制御回路２３及び画像表示装置２４を用いて遊技に関する情報を表示できる。さらに遊技機４０は音制御回路２５及びスピーカ２６を用いて遊技に伴う音を出力できる。
【０１１０】
図７に示された遊技機４０は、外部記憶装置１５に記憶され、主記憶メモリ１３に存在して遊技に用いられるコンピュータプログラムを、本発明の情報処理装置１によって検証することができる。
【０１１１】
本発明の情報処理装置１は、実施例４に示したように、初期状態からの動作開始時に、検証されるコンピュータプログラムが外部記憶装置１５から主記憶メモリ１３にコピーされる段階において、破損、改ざんが生じないことを保証することができる。また、本発明の情報処理装置１は、実施例３に示したように、主記憶メモリ１３に検証されるプログラムが存在する期間中の所定のタイミングにおいて、該コンピュータプログラムを定期的、継続的に検証し、破損、改ざんが生じないことを保証することができる。
【０１１２】
遊技機の管理者は、通信ポート３４を介して本発明の情報処理装置１に向けて予め決められた情報を送信し、遊技プログラムの検証を開始してもよい。
【０１１３】
初期状態からの動作開始時に、遊技プログラムに、破損、改ざん等の発生が検出された場合は、実施例４において図６を用いステップＳ３５として示したように、情報処理装置の入出力を制限し、破損、改ざん等の発生が検出された遊技プログラムが動作開始しないようにすることができる。好適な入出力の制限は、図７におけるコントロールパネル１８を使用停止し、使用者が遊技プログラムに動作の開始を指示しないようにすることである。
【０１１４】
遊技プログラムが主記憶メモリに存在する期間中において、遊技プログラムに、破損、改ざん等の発生が検出された場合は、実施例３において図５を用いステップＳ２１として示したように、破損、改ざん等の発生が検出された遊技プログラムを動作停止する。さらに、メモリ中に存在し続けることが情報処理装置の動作にとって危険であるようなプログラムに係る情報データベースを用い、破損、改ざん等の発生が検出された該遊技プログラムが危険性を有する場合に、シャットダウンが必要であることをオペレーティングシステムに通知できる。該情報データベースは、例えば、図２に示した外部記憶装置１５に記憶される。
【０１１５】
このようにして、本発明の遊技機４０は、遊技の制御、遊技情報の表示をコンピュータプログラムで行い、本発明の情報処理装置を用いて該コンピュータプログラムを該情報処理装置により検証することができる。したがって、本発明の遊技機においては、遊技プログラムが外部記憶装置から主記憶メモリ上にコピーされる期間を通じて検証される遊技プログラムが破損、改ざんを受けていないことを保証できる。
【０１１６】
本発明の遊技機においては、検証される遊技プログラムに対する破損、改ざん等を継続的、定期的に検出し、破損、改ざん等を発見した場合には遊技プログラムの動作を制限でき、さらに情報処理装置の動作を制限することによって遊技機の動作を制限できる。したがって、本発明の遊技機においては、遊技プログラムが主記憶メモリに存在する期間中に、該遊技プログラムを継続的、定期的に保証できる。
【０１１７】
＜実施例１１＞
実施例１１では、コンピュータプログラムにより遊技を制御する遊技制御手段と、遊技に関する情報を表示する表示手段とを備え、本発明の情報処理装置を含み、前記情報処理装置が前記コンピュータプログラムを検証する、遊技機の形態を示す。
【０１１８】
図８は、図７を用いて説明した構成を有する本発明の一実施形態に係る遊技機の例を示す斜視図である。本実施形態において、遊技機４０は、スロットマシンである。ただし、本発明において、遊技機としては、スロットマシンに限定されず、例えば、ビデオスロットマシン、ビデオカードゲーム機等のいわゆるシングルゲーム機であってもよく、競馬ゲームやビンゴゲームや宝くじ等のように結果が表示されるまでに所定の時間を要するゲームを行ういわゆるマスゲーム機（マルチ・ターミナル・ゲーミングマシン）等であってもよい。
【０１１９】
遊技機４０では、クレジットとして、コイン、紙幣又はこれらに相当する電子的な有価情報が用いられるものである。ただし、本発明において、クレジットとしては、特に限定されるものではなく、例えば、メダル、トークン、電子マネーを挙げることができる。
【０１２０】
図８に示す遊技機４０は、筐体４２を備えている。筐体４２の内部には、３個のリール５４（５４Ｌ、５４Ｃ、５４Ｒ）が回転可能に設けられている。各リール５４の外周面には、２２個の図柄（以下、シンボルともいう）からなるシンボル列が描かれている。
【０１２１】
各リール５４の前方には、下側画像表示パネル５６が設けられている。下側画像表示パネル５６は、透明液晶パネルを備えていて、遊技中には、遊技に関する各種の情報や演出画像等が表示される。下側画像表示パネル５６は、本発明における画像の出力装置に相当するものである。下側画像表示パネル５６には、クレジット数表示部７１及びペイアウト数表示部７２が設定されている。クレジット数表示部７１には、クレジットされたコインの枚数が画像によって表示される。ペイアウト数表示部７２には、入賞ライン上に再配置されたシンボルの組合せが所定の組合せであった場合に払い出されるコインの数が画像によって表示される。
【０１２２】
下側画像表示パネル５６には、その背面を視認可能な３個の表示窓５５（５５Ｌ、５５Ｃ、５５Ｒ）が形成されていて、各表示窓５５を介して各リール５４の外周面に描かれたシンボルがそれぞれ３個ずつ表示される。下側画像表示パネル５６には、３個の表示窓５５を水平に横切る１本の入賞ラインが形成されている。入賞ラインは、シンボルの組合せを規定するものである。入賞ライン上に再配置されたシンボルの組合せが所定の組合せであった場合に、その組合せとコインの投入数（ＢＥＴ数）とに応じた枚数のコインが払い出される。
【０１２３】
なお、本発明においては、例えば、３個の表示窓５５を水平に又は斜めに横切る複数本の入賞ラインが形成されていて、コインの投入数に応じた数の入賞ラインが有効化され、有効化された入賞ライン上に再配置されたシンボルの組合せが所定の組合せであった場合に、その組合せに応じた枚数のコインが払い出されることとしてもよい。
【０１２４】
更に、下側画像表示パネル５６の前面には、図示しないが、タッチパネル９９が設けられていて、遊技者はタッチパネル９９を操作して各種の指示を入力することができる。
【０１２５】
下側画像表示パネル５６の下方には、遊技者によって遊技進行に係る指示が入力される複数のボタン６３〜６７からなるコントロールパネル１８と、コインを筐体４２内に受け入れるコイン受入口６１と、紙幣識別器６２とが設けられている。
【０１２６】
コントロールパネル１８には、スピンボタン６３と、チェンジボタン６４と、キャッシュアウトボタン６５と、１−ＢＥＴボタン６６と、最大ＢＥＴボタン６７とが設けられている。スピンボタン６３は、リール５４の回転を開始させる指示を入力するためのものである。チェンジボタン６４は、遊技施設の係員に両替を要求する際に用いられるものである。キャッシュアウトボタン６５は、クレジットされているコインをコイントレイ５８に払い出す指示を入力するためのものである。
【０１２７】
１−ＢＥＴボタン６６は、クレジットされているコインのうち、１枚のコインを遊技に賭ける指示を入力するためのものである。最大ＢＥＴボタン６７は、クレジットされているコインのうち、１回の遊技に賭けることが可能な最大枚数（本実施形態では５０枚）のコインを遊技に賭ける指示を入力するためのものである。
【０１２８】
なお、本発明において、クレジットの投入とは、クレジットが消費されることをいう。クレジットが消費される場合には、クレジットが直接遊技に賭けられる場合と、遊技のモードを変更する等の直接遊技に賭けること以外の目的のためにクレジットが消費される場合とが含まれる。例えば、コイン受入口６１に投入されたコインが、直接遊技に賭けられる場合、コイン受入口６１へのコインの投入が、クレジットの投入に相当する。ただし、本実施形態のように、コイン受入口６１へコインが投入されると、一旦クレジットされ、１−ＢＥＴボタン６６又は最大ＢＥＴボタン６７が操作されると、クレジットされたコインが遊技に賭けられる場合、クレジットされたコインが遊技に賭けられることが、クレジットの投入に相当する。
【０１２９】
紙幣識別器６２は、紙幣の適否を識別するとともに正規の紙幣を筐体４２内に受け入れるものである。
【０１３０】
筐体４２の前面には、上側画像表示パネル７３が設けられている。上側画像表示パネル７３は、液晶パネルを備えていて、例えば、演出画像、遊技内容の紹介や遊技のルールの説明を表す画像が表示される。本実施形態においては、上側画像表示パネル７３も、下側画像表示パネル５６と同様に、本発明における画像の出力装置に相当するものである。なお、本発明においては、下側画像表示パネル５６及び上側画像表示パネル７３のいずれか一方が、画像の出力装置に相当するものであってもよい。
【０１３１】
また、筐体４２には、スピーカ２６が設けられている。スピーカ２６は、本発明における音の出力装置に相当するものである。下側画像表示パネル５６の下側には、カードリーダ７６と、データ表示器７７と、キーパッド７８とが設けられている。
【０１３２】
カードリーダ７６は、スマートカードからのデータの読み取り及びスマートカードへのデータの書き込みを行うものである。スマートカードは、遊技者が所持するカードであり、例えば、遊技者を識別するためのデータ、遊技者が行った遊技の履歴に関するデータが記憶される。スマートカードには、コイン、紙幣又はクレジットに相当するデータが記憶されることとしてもよい。また、スマートカードにかえて、磁気ストライプカードを採用してもよい。データ表示器７７は、蛍光ディスプレイ等からなり、例えば、カードリーダ７６が読み取ったデータや、遊技者によってキーパッド７８を介して入力されたデータを表示するものである。
【０１３３】
図８に一形態を示した本発明に係る遊技機は、コンピュータプログラムを用いてコントロールパネル１８に設けられたスピンボタン６３等からの入力に基づき遊技を制御し、表示窓５５、上側画像表示パネル７３等に遊技に関する情報を表示する。本発明の遊技機に含まれる情報処理装置が、当該コンピュータプログラムを起動時において、及び稼動期間中に定期的、継続的に検証することにより、本発明の遊技機は、遊技に係るコンピュータプログラムの起動時において及び当該コンピュータプログラムが主記憶メモリに存在する期間中において、当該コンピュータプログラムに破損、改ざん等が生じていないことを定期的、継続的に保証することができる。
【０１３４】
以上、本発明の実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。上記実施形態に、多様な変更または改良を加えることができる。そのような変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。例えば、（１）ＡＴＭ（現金自動預払機）、（２）旅客乗車券、定期券、航空券、テレホンカード、等の有価証券販売機、（３）商品引換券等の証票発行端末、（４）住民票等法律の証明書類を発行する証書発行端末、等にも同様に対応することができる。
【産業上の利用可能性】
【０１３５】
本発明のプログラムを検証する情報処理装置は、動的メモリ確保を行うオペレーティングシステムを利用し、初期状態からの起動時にコンピュータプログラムを検証し、さらに情報処理装置の稼動中の所定のタイミングにおいてコンピュータプログラムを検証できる。これらによって、動的メモリ確保を行うオペレーティングシステムにおける当該コンピュータプログラムの破損や改ざん等を検出できるとともに、主記憶メモリに存在するコンピュータプログラムが破損や改ざん等を受けていないことを定期的かつ継続的に検証し、当該プログラムが主記憶メモリ上に存在する期間を通じて破損、改ざん等を受けていないことを保証することができる。
【図面の簡単な説明】
【０１３６】
【図１】本発明の情報処理装置が所定のタイミングにおいてコンピュータプログラムを検証することを示すフロー図である。
【図２】本発明の情報処理装置の構成を示す図である。
【図３】本発明の情報処理装置の外観の例を示す斜視図である。
【図４】本発明の情報処理装置が検証するプログラムが参照する主記憶メモリのアドレスを指し示すための線形リストの例を示すテーブルの説明図である。
【図５】本発明の情報処理装置におけるエラー処理を示すフロー図である。
【図６】本発明の情報処理装置が初期状態からの起動後においてコンピュータプログラムを検証することを示すフロー図である。
【図７】本発明の遊技機の構成を示す図である。
【図８】本発明の遊技機の外観の例を示す斜視図である。
【符号の説明】
【０１３７】
１  情報処理装置
１０  コントローラ
１１  ＣＭＯＳ  ＲＡＭ
１２  ＢＩＯＳ  ＲＯＭ
１３  主記憶メモリ
１４  クロック発生回路
１５  外部記憶装置
１６  拡張インタフェース
１７  機能拡張ボード
１８  コントロールパネル
１９  電源ユニット
２０  メインボード
２１  ＲＴＣ
２２  通信インタフェース
２３  画像制御回路
２４  画像表示装置
２５  音制御回路
２６  スピーカ
２７  システムバス
２８  バッテリ
３０  メモリバス
３１  外部記憶バス
３３  コインセンサ
３４  通信ポート
３５  遊技ボード
４０  遊技機
４１  情報処理装置
４２  筐体
５４  リール
５５  表示窓
５６  下側画像表示パネル
５８  トレイ
６１  コイン受入口
６２  紙幣識別器
６３  スピンボタン
６４  チェンジボタン
６５  キャッシュアウトボタン
６６  １−ＢＥＴボタン
６７  最大ＢＥＴボタン
７１  クレジット数表示部
７２  ペイアウト数表示部
７３  上側画像表示パネル
７６  カードリーダ
７７  データ表示器
７８  キーパッド
９９  タッチパネル
【図１】
0005411414.tif 000002
【図２】
0005411414.tif 000003
【図３】
0005411414.tif 000004
【図４】
0005411414.tif 000005
【図５】
0005411414.tif 000006
【図６】
0005411414.tif 000007
【図７】
0005411414.tif 000008
【図８】
0005411414.tif 000009