JP2009110476A - 記憶処理装置、情報提供サーバ、動作方法、ならびに、プログラム - Google Patents

記憶処理装置、情報提供サーバ、動作方法、ならびに、プログラム Download PDF

Info

Publication number
JP2009110476A
JP2009110476A JP2007284837A JP2007284837A JP2009110476A JP 2009110476 A JP2009110476 A JP 2009110476A JP 2007284837 A JP2007284837 A JP 2007284837A JP 2007284837 A JP2007284837 A JP 2007284837A JP 2009110476 A JP2009110476 A JP 2009110476A
Authority
JP
Japan
Prior art keywords
address
address conversion
conversion table
processing device
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007284837A
Other languages
English (en)
Other versions
JP4554660B2 (ja
Inventor
Makoto Sato
良 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Konami Digital Entertainment Co Ltd
Original Assignee
Konami Digital Entertainment Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Konami Digital Entertainment Co Ltd filed Critical Konami Digital Entertainment Co Ltd
Priority to JP2007284837A priority Critical patent/JP4554660B2/ja
Publication of JP2009110476A publication Critical patent/JP2009110476A/ja
Application granted granted Critical
Publication of JP4554660B2 publication Critical patent/JP4554660B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】データの不正な書き換えを抑制する記憶処理装置、情報提供サーバ、動作方法、ならびに、コンピュータ上で実現するためのプログラムを提供することを目的とする。
【解決手段】記憶処理装置200において外部メモリであるパラメータ記憶部201のデータにアクセスする場合、仮想アドレスを指定する。読書き部204は、テーブル記憶部202に記憶されたアドレス変換テーブルを参照して、指定された仮想アドレスに対応する実アドレスを取得するよう、アドレス取得部203を制御する。そして、取得された実アドレスに対して、アクセスを行う。アドレス変換テーブルを所定のタイミングで変更することで、パラメータ記憶部201のどの部分にパラメータが書き込まれているのかが把握されにくくなり、不正なデータの書き換えを抑制することが可能となる。
【選択図】図2

Description

本発明は、データの不正な書き換えを抑制する記憶処理装置、情報提供サーバ、動作方法、ならびにコンピュータ上で実現するためのプログラムに関する。
従来から、ゲーム装置においては、各種数値パラメータを用いてゲームの状態が表現されている。このような数値パラメータには、プレイヤーが操作するキャラクターの体力やレベル等の各種の能力値、クリアした面の数や過去のスコア履歴など、種々のものがある。数値パラメータは、典型的には、メモリカードやハードディスクなど、ユーザのゲーム装置がローカルに保有する不揮発性記憶媒体に記録される。このように外部メモリに数値パラメータを保存する形態は、ネットワーク対戦型のゲームでも広く採用されている。
一方、数値パラメータを、自己に有利なように改変する不正行為(チート行為)が頻繁に行われている。数値パラメータの不正な書き換えは、特に複数のユーザが対戦するネットワークゲームなどで問題となっている。このような不正行為を検出するための数値記録装置は、例えば、特許文献1に開示されている。
特開2006−72825号公報
特許文献1に記載の技術によると、保存すべきfloat型の数値をdouble型に昇格変換(アップキャスト)して外部メモリに記憶する。ロードする場合は、外部メモリから読み出したdouble型数値をfloat型降格変換(ダウンキャスト)する。そして、同じ指数部を有するdouble型の数値はfloat型の数値と比較して、229の冗長度を有するという点を利用して、降格変換した結果をさらに昇格変換した値と、外部記憶から読み出した結果を比較し、異なると、不正があった旨の報告を行う。
この方法は、全てのロード時に、不正の有無のチェックが行われるため、不正の検出には有効であるが、計算負荷も多くなる。一方、ゲーム機などのように、計算資源が限られた環境で、計算負荷をかけずに、不正行為を抑制する方法が求められている。
本発明は、以上のような課題を解決するためのもので、データの不正な書き換えを抑制する記憶処理装置、情報提供サーバ、動作方法、ならびに、コンピュータ上で実現するためのプログラムを提供することを目的とする。
上記目的を達成するため、本発明の第1の観点に係る記憶処理装置は、パラメータ記憶部と、テーブル記憶部と、アドレス取得部と、読書き部と、更新部と、を備える。
パラメータ記憶部は、パラメータ群を記憶する。パラメータ記憶部としては後述するように例えばメモリカード等の不揮発性記憶媒体を想定しており、ゲームの種々のプレイ状態を記憶する。例えば、プレイヤーが操作する各キャラクタのレベルなどの能力値、保持するお金やアイテム、そしてクリアしたステージなど、様々な情報がパラメータとして記憶される。即ち、どのパラメータがどのアドレスに記憶されるかが一度把握されると、そのアドレスのデータを書き換えることで容易に不正を行うことが可能となる。例えば、不正にキャラクタのレベルを書き換えれば、経験を積むことなく、瞬時に高いレベルを有するキャラクタとすることが可能となる。
テーブル記憶部は、当該パラメータ群の各パラメータが記憶されるパラメータ記憶部内の実アドレスと、当該パラメータにアクセスするために指定する仮想アドレスと、を対応付けるアドレス変換テーブルを記憶する。
即ち、本実施の形態においては、不成行為者が、パラメータがメモリカード上のどの位置に記憶されるのかを簡単に推定できないようにするため、パラメータ記憶部にアクセスするために指定する仮想アドレスと、パラメータがパラメータ記憶部内に記憶される実アドレスとが異なる。そして、仮想アドレスと実アドレスの対応付けはテーブル記憶部に保存されるアドレス変換テーブルに記憶される。
なお、パラメータ記憶部は、1バイト単位で管理され、パラメータ記憶部内のデータにアクセスするための仮想アドレスもバイト単位で指定可能である。そして、テーブル記憶部には、各仮想アドレスに対応付けて、実アドレスが記憶される。
アドレス取得部は、指定された仮想アドレスを入力として、アドレス変換テーブルを参照して、パラメータ記憶部の実アドレスを取得する。即ち、アドレス取得部はアドレス変換テーブルが異なると、同じ仮想アドレスに対して、異なる実アドレスを取得する。
読書き部は、指定された仮想アドレスに対する読書き要求を受信すると、アドレス取得部を制御して、当該仮想アドレスに対応する実アドレスを取得し、パラメータ記憶部の当該取得した実アドレスに対して読書きを行う。
即ち、読書き部は、不揮発性記憶媒体であるパラメータ記憶部に対してゲーム状態をセーブしたり、ロードする処理において、パラメータ記憶部に実際に読書きする部分を担う。これらセーブやロード処理においては、仮想アドレスを指定したアクセス要求が読書き部に対して発行される。読書き部は指定された仮想アドレスに対応付けられた実アドレスに対し、実際の読書きを行う。
更新部はアドレス変換テーブルを所定のタイミングで更新し、さらに、各仮想アドレスを指定した際に、更新前のアドレス変換テーブルを参照して得られる実アドレスに記憶されるデータと、更新後のアドレス変換テーブルを参照して得られる実アドレスに記憶されるデータとが一致するように、実アドレスに記憶されるデータを更新する。
即ち、更新部によってアドレス変換テーブルが更新されると、同じ仮想アドレスに対してアクセスを行っても、読書き部が実際にアクセスする実アドレスが異なる。所定のタイミングで、パラメータが保存されるパラメータ記憶部内の実アドレスを変化させれば、容易にどの実アドレスにどのパラメータが記憶されているかを推定し難くなり、不正にデータを書き換えることも困難となる。ただし、データの整合性を維持するために、同じ仮想アドレスに対してアクセスした場合、アドレス変換テーブルを更新する前と、後で、同じ内容のデータが得られるように、更新部がパラメータ記憶部のデータを入れ替える。
このように、本発明に係る記憶処理装置は、データアクセス時にアドレス変換処理を行うことで、パラメータ記憶部に記憶される各データの位置を容易に不正行為者に把握されないようにすることが可能である。また、アドレス変換テーブルを所定のタイミングで更新することによって、容易に不正行為者に把握されないように、さらに、工夫している。
更新部は、所定のタイミングで、実アドレスと仮想アドレスとの対応付けをランダムに入れ替えて、アドレス変換テーブルを更新するようにしてもよい。即ち、更新部はアドレス変換テーブルを自前で生成するようにしてもよい。
記憶処理装置はネットワークを介して情報提供サーバに接続されており、受信部はアドレス変換テーブルを情報提供サーバから受信するテーブル受信部をさらに備えるようにしてもよい。即ち、本記憶処理装置がネットワーク接続可能なゲーム機などに接続されている場合を想定して、アドレス変換テーブルをネットワークを介して接続された情報提供サーバから受信してもよい。
更新部は、受信したアドレス変換テーブルによって、アドレス変換テーブルを更新するようにしてもよい。即ち、更新部は、情報提供サーバから送信されたアドレス変換テーブルをテーブル記憶部に保存して、新たなアドレス変換テーブルとする。
記憶処理装置は、返信部をさらに備えるようにしてもよい。そして、更新部が、当該アドレス変換テーブルと、当該実アドレスに記憶されるデータとを更新すると、返信部は、更新される直前にテーブル記憶部に記憶されていたアドレス変換テーブルと、自己を識別する記憶処理装置識別情報と、を情報提供サーバに返信するようにしてもよい。
ここで、情報提供サーバ側は、新しいアドレス変換テーブルを記憶処理装置に送ると、記憶処理装置側でアドレス変換テーブルが不正に書き換えられていないかどうかを判定するために、記憶処理装置から古いアドレス変換テーブルを送信してもらう。そして、情報提供サーバは、送信されたテーブルと、当該情報提供サーバが記憶処理装置へ送信したアドレス変換テーブルと、を比較して、両テーブルが異なれば不正な書き込みが行われたと判断する。
このとき、情報提供サーバは自分がどの記憶処理装置にどのアドレス変換テーブルを送信したかを記憶しておかなければ、記憶処理装置から送られてきたアドレス変換テーブルと比較できない。よって、情報提供サーバは、アドレス変換テーブルと、当該アドレス変換テーブルを送信した先の記憶処理装置の識別情報と、を対応付けて記憶する。そして、情報提供サーバが、記憶された記憶処理装置の識別情報から、記憶処理装置に送信した変換テーブルを参照できるように、記憶処理装置の返信部はアドレス変換テーブルと、自己を識別する記憶処理装置識別情報とを情報提供サーバへ送信する。
返信部は、アドレス変換テーブルに代えて、更新される直前にテーブル記憶部に記憶されていた当該アドレス変換テーブルに所定のハッシュ関数を適用した結果を、情報提供サーバに返信するようにしてもよい。即ち、新しいアドレス変換テーブルが情報提供サーバから送られてくると、返信部は、古いアドレス変換テーブル自体ではなく、古いアドレス変換テーブルに所定のハッシュ関数を適用した結果を送信する。そして、当該古いアドレス変換テーブルが不正に書き換えられていないかどうかを情報提供サーバ側でハッシュ値を比較して判定してもらう。
テーブル受信部は、情報提供サーバから、アドレス変換テーブルに対応付けられるテーブル識別情報をさらに受信し、返信部は、自己を識別する記憶処理装置識別情報に変えて、受信したテーブル識別情報を情報提供サーバに返信するようにしてもよい。即ち、上述したように、情報提供サーバ側で、どのアドレス変換テーブルをどの記憶処理装置に送信したかを管理するのではなく、記憶処理装置側で、どのアドレス変換テーブルが情報提供サーバから送信されたかを、管理してもよい。
一方、情報提供サーバ側は、保有する複数のアドレス変換テーブルに対して、当該テーブルを識別するテーブル識別情報を記憶すればよい。記憶処理装置の返信部がアドレス変換テーブルとテーブル識別情報とを情報提供サーバに送信すれば、情報提供サーバ側は、テーブル識別情報に基づいて、どの変換テーブルを当該記憶処理装置に送信したかが把握できる。これにより、情報提供サーバ側で、当該記憶処理装置に送信したアドレス変換テーブルと、当該記憶処理装置から送信されたアドレス変換テーブルとの比較が可能となり、アドレス変換テーブルに対する不正な書き換みの有無を判定することができる。
なお、記憶処理装置において、パラメータ記憶部は不揮発性記憶媒体であり、テーブル記憶部は揮発性記憶媒体である。即ち、前述したように、パラメータ記憶部は、ゲームでよく利用される、メモリカードなどを想定している。
一方、情報提供サーバがアドレス変換テーブルを提供する場合、記憶処理装置は必要に応じて情報提供サーバにアドレス変換テーブルを再送信してもらえば事足りるため、テーブル記憶部には、揮発性記憶媒体が採用される。
ただし、記憶処理装置が自前でアドレス変換テーブルを作成する場合は、電源を投入した際に、電源を切る前のアドレス変換テーブルを回復する必要がある。よって、実行時は、テーブル記憶部として、RAMなどの不揮発性記憶媒体が利用され、電源を切る際には、メモリカードなどの不揮発性記憶媒体が採用される。
本発明の他の観点に係る情報提供サーバは、ネットワークを介して記憶処理装置に接続された情報提供サーバであって、候補記憶部と、テーブル送信部と、送信情報記憶部と、受信部と、判定部と、を備える。
ここで、候補記憶部は、記憶処理装置の実アドレスと、実アドレスのそれぞれにアクセスするために指定する仮想アドレスとを対応付けるアドレス変換テーブルを複数記憶する。即ち、情報提供サーバは、前述のアドレス変換テーブルを記憶処理装置に提供するために、候補記憶部に複数のアドレス変換テーブルを記憶する。
テーブル送信部は、記憶処理装置へ所定のタイミングで当該アドレス変換テーブルを送信する。上述したように、テーブル送信部は、候補記憶部の中からアドレス変換テーブル1つを選択し、記憶処理装置へ送信する。記憶処理装置側は、送信されたアドレス変換テーブルを新たなアドレス変換テーブルとする。
送信情報記憶部は、当該アドレス変換テーブルと、当該アドレス変換テーブルの送信先の記憶処理装置を識別する記憶処理装置識別情報と、を対応付けて記憶する。
記憶処理装置について説明した際にも触れたが、情報提供サーバは、記憶処理装置側でアドレス変換テーブルが不正に書き換えられていないかどうかを判定するために、記憶処理装置からアドレス変換テーブルを送信してもらう。情報提供サーバは、送信されたテーブルと、当該情報提供サーバが記憶処理装置へ送信したアドレス変換テーブルと、を比較して、両テーブルが異なれば不正な書き込みが行われたと判断する。よって、自分がどの記憶処理装置にどのアドレス変換テーブルを送信したかを記憶しておくために、情報提供サーバは、送信情報記憶部にアドレス変換テーブルと、当該アドレス変換テーブルを送信した先の記憶処理装置の識別情報と、を対応付けて記憶する。
受信部は、記憶処理装置から返信されたアドレス変換テーブルと、送信元の記憶処理装置を識別する記憶処理装置識別情報と、を受信する。そして、判定部は、送信情報記憶部を参照して、受信した当該記憶処理装置識別情報に対応づけられたアドレス変換テーブルを取得し、当該アドレス変換テーブルと、受信したアドレス変換テーブルと、を比較し、両テーブルが一致した場合はデータの改ざんがなく、両テーブルが一致しない場合はデータの改ざんがあった、と判定する。
即ち、本来のアドレス変換テーブルを、自作したテーブルで置き換えることによってデータの書き換えを行うような不正行為を、アドレス変換テーブルの書き換えを判定することで発見することが可能となる。
受信部は、アドレス変換テーブルに代えて、アドレス変換テーブルに所定のハッシュ関数を適用した結果を記憶処理装置から受信するようにしてもよい。即ち、受信部は、記憶処理装置から、アドレス変換テーブルにハッシュ関数を適用した値と、当該記憶処理装置の識別情報を受信するようにしてもよい。
そして、判定部は、送信情報記憶部を参照して、受信した当該記憶処理装置識別情報に対応づけられたアドレス変換テーブルを取得し、当該アドレス変換テーブルに所定のハッシュ値関数を適用した結果と、受信したハッシュ値と、を比較し、両者が一致した場合はデータの改ざんがなく、両者が一致しない場合はデータの改ざんがあった、と判定するようにしてもよい。
即ち、アドレス変換テーブル自体を比較せずに、記憶処理装置から受信されたハッシュ値と、当該記憶処理装置に送信したアドレス変換テーブルにハッシュ関数を適用した結果とを比較することによって、アドレス変換テーブルに対する不正の有無を判断するようにしてもよい。なお、テーブル自体ではなく、ハッシュ値を送信することで、ネットワークのトラフィックを減らすことが可能となる。
このように、アドレス変換テーブルを情報提供サーバ側が提供することで、記憶処理装置側で不正にアドレス変換テーブルへの書き込みがあった場合でも、情報提供サーバ側で不正を発見することが可能となる。
本発明の他の観点に係る情報提供サーバは、ネットワークを介して記憶処理装置に接続された情報提供サーバであって、上記情報提供サーバ同様に、候補記憶部と、テーブル送信部と、受信部と、判定部と、を備える。
候補記憶部は、記憶処理装置の実アドレスと、実アドレスのそれぞれにアクセスするために指定する仮想アドレスとを対応付けるアドレス変換テーブルを複数記憶し、当該アドレス変換テーブルのそれぞれに対して、当該アドレス変換テーブルを識別するテーブル識別情報を記憶する。テーブル送信部は、記憶処理装置へ所定のタイミングで当該アドレス変換テーブルと、対応するテーブル識別情報と、を送信する。
また、受信部は、記憶処理装置から返信されたアドレス変換テーブルと、対応するテーブル識別情報と、を受信する。そして、判定部は、当該テーブル識別情報に対応するアドレス変換テーブルを候補記憶部から取得し、当該アドレス変換テーブルと、受信したアドレス変換テーブルと、を比較し、両テーブルが一致した場合はデータの改ざんがなく、両者が一致しない場合データの改ざんがあった、と判定する。
即ち、上記情報提供サーバと異なる点は、送信情報記憶部を有しない点である。本情報提供サーバは、どの記憶処理装置にどのアドレス変換テーブルを送信したかを記憶しない代わりに、アドレス変換テーブルのそれぞれを識別するテーブル識別情報を備える。テーブル送信部は、このテーブル識別情報を、アドレス変換テーブルと共に、記憶処理装置に送信する。
一方、記憶処理装置側は、アドレス変換テーブルに不正な書き換えがなかったかどうかを情報提供サーバ側で判定してもらうために、アドレス変換テーブルを識別する識別情報を、アドレス変換テーブルと共に送信する。情報提供サーバ側では受信部がこの情報を受信すると、判定部が、テーブル識別情報に基づいて比較対象の正しいアドレス変換テーブルを取得し、不正な書き込みの有無を判定する。
本発明の他の観点に係る動作方法は、パラメータ記憶部と、テーブル記憶部と、アドレス取得部と、読書き部と、更新部と、を備える記憶処理装置の動作方法であって、以下の工程を備える。
パラメータ記憶工程では、パラメータ記憶部が、パラメータ群を記憶する。
テーブル記憶工程では、テーブル記憶部が、当該パラメータ群の各パラメータが記憶されるパラメータ記憶部内の実アドレスと、当該パラメータにアクセスするために指定する仮想アドレスと、を対応付けるアドレス変換テーブルを記憶する。
アドレス取得工程では、アドレス取得部が、指定された仮想アドレスを入力として、アドレス変換テーブルを参照して、パラメータ記憶部の実アドレスを取得する。
読書き工程では、読書き部が、指定された仮想アドレスに対する読書き要求を受信すると、アドレス取得部を制御して、パラメータ記憶部の、当該仮想アドレスに対応する実アドレスを取得し、パラメータ記憶部の当該取得した実アドレスに対して読書きを行う。
更新工程では、更新部が、アドレス変換テーブルを所定のタイミングで更新し、さらに、各仮想アドレスを指定した際に、更新前のアドレス変換テーブルを参照して得られる実アドレスに記憶されるデータと、更新後のアドレス変換テーブルを参照して得られる実アドレスに記憶されるデータとが一致するように、実アドレスに記憶されるデータを更新する。
本発明の他の観点に係る動作方法は、候補記憶部と、テーブル送信部と、送信情報記憶部と、受信部と、判定部と、を備える、ネットワークを介して記憶処理装置に接続された情報提供サーバの動作方法であって、以下の工程を備える。
候補記憶工程では、候補記憶部が、記憶処理装置の実アドレスと、実アドレスのそれぞれにアクセスするために指定する仮想アドレスとを対応付けるアドレス変換テーブルを複数記憶する。
テーブル送信工程では、テーブル送信部が記憶処理装置へ所定のタイミングで当該アドレス変換テーブルを送信する。
送信情報記憶工程では、送信情報記憶部が、当該アドレス変換テーブルと、当該アドレス変換テーブルの送信先の記憶処理装置を識別する記憶処理装置識別情報と、を対応付けて記憶する。
受信工程では、受信部が、記憶処理装置から返信されたアドレス変換テーブルと、送信元の記憶処理装置を識別する記憶処理装置識別情報と、を受信する。
判定工程では、判定部が、送信情報記憶部を参照して、受信した当該記憶処理装置識別情報に対応づけられたアドレス変換テーブルを取得し、当該アドレス変換テーブルと、受信したアドレス変換テーブルと、を比較し、両テーブルが一致した場合はデータの改ざんがなく、両テーブルが一致しない場合はデータの改ざんがあった、と判定する。
本願発明の他の観点に係る動作方法は、候補記憶部と、テーブル送信部と、受信部と、判定部と、を備える、ネットワークを介して記憶処理装置に接続された情報提供サーバの動作方法であって、
候補記憶部が、記憶処理装置の実アドレスと、実アドレスのそれぞれにアクセスするために指定する仮想アドレスとを対応付けるアドレス変換テーブルを複数記憶し、当該アドレス変換テーブルのそれぞれに対して、当該アドレス変換テーブルを識別するテーブル識別情報を記憶する候補記憶工程と、
テーブル送信部が、記憶処理装置へ所定のタイミングで当該アドレス変換テーブルと、対応するテーブル識別情報と、を送信するテーブル送信工程と、
受信部が、記憶処理装置から返信されたアドレス変換テーブルと、対応するテーブル識別情報と、を受信する受信工程と、
判定部が、当該テーブル識別情報に対応するアドレス変換テーブルを候補記憶部から取得し、当該アドレス変換テーブルと、受信したアドレス変換テーブルと、を比較し、両テーブルが一致した場合はデータの改ざんがなく、両者が一致しない場合データの改ざんがあった、と判定する判定工程と、
を備える、
ことを特徴とする。
本発明の他の観点に係るプログラムは、コンピュータを、上記の記憶処理装置、および、上記の情報提供サーバとして機能させるように構成する。
また、本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記録媒体に記録することができる。上記プログラムは、当該プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記録媒体は、当該コンピュータとは独立して配布・販売することができる。
本発明によると、データの不正な書き換えを抑制する記憶処理装置、情報提供サーバ、動作方法、およびプログラムを提供することができる。
以下に本発明の実施の形態を説明する。以下では、理解を容易にするため、ゲーム装置に本発明が適用される実施の形態を説明するが、各種のコンピュータ、PDA、携帯電話などの情報処理装置においても同様に本発明を適用することができる。すなわち、以下に説明する実施の形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと等しいものに置換した実施形態を採用することが可能であるが、これらの実施の形態も本発明の範囲に含まれる。
(実施形態)
図1は、本発明の実施形態の1つに係る記憶処理装置が実現される典型的なゲーム装置の概要構成を示す模式図である。以下、本図を参照して説明する。
ゲーム装置100は、CPU(Central Processing Unit)101と、ROM(Read Only Memory) 102と、RAM(Random Access Memory)103と、インターフェイス104 と、コントローラ105と、外部メモリ106と、画像処理部107 と、DVD(Digital Versatile Disk)−ROMドライブ108と、NIC(Network Interface Card)109と、音声処理部110と、を備える。
ゲーム用のプログラムおよびデータを記憶したDVD−ROMをDVD−ROMドライブ108に装着して、ゲーム装置100の電源を投入することにより、当該プログラムが実行され、本実施形態の記憶処理装置が実現される。
CPU 101は、ゲーム装置100全体の動作を制御し、各構成要素と接続され制御信号やデータをやりとりする。
ROM 102は、電源投入直後に実行されるIPL(Initial Program Loader)を記憶する。このIPLをCPU 101が実行することにより、DVD−ROMに記録されたプログラムがRAM 103に読み出され、CPU 101による実行が開始される。
また、ROM 102にはゲーム装置100全体の動作制御に必要なオペレーティングシステムのプログラムや各種のデータが記録される。
RAM 103は、データやプログラムを一時的に記憶するためのもので、DVD−ROMから読み出したプログラムやデータ、その他ゲームの進行やチャット通信に必要なデータ等が保持される。
インターフェイス104を介して接続されたコントローラ105は、ユーザがゲーム実行の際に行う操作入力を受け付ける。
インターフェイス104を介して着脱自在に接続された外部メモリ106には、例えばチャット通信のログのデータなどが書き換え可能に記憶される。ユーザは、コントローラ105を介して指示入力を行うことにより、これらのデータを適宜外部メモリ106に記憶することができる。
DVD−ROMドライブ108に装着されるDVD−ROMには、前述のようにゲームを実現するためのプログラムとゲームに付随する画像データや音声データが記録される。CPU 101の制御によって、DVD−ROMドライブ108は、これに装着されたDVD−ROMに対する読み出し処理を行って、必要なプログラムやデータを読み出す。読み出されたデータはRAM103等に一時的に記憶される。
画像処理部107は、DVD−ROMから読み出されたデータをCPU 101や画像処理部107が備える画像演算プロセッサ(図示せず)によって加工処理した後、これを画像処理部107が備えるフレームメモリ(図示せず)に記録する。フレームメモリに記録された画像情報は、所定の同期タイミングでビデオ信号に変換され画像処理部107に接続されるモニタ(図示せず)へ出力される。これにより、各種の画像表示が可能となる。
画像演算プロセッサは、2次元の画像の重ね合わせ演算やαブレンディング等の透過演算、各種の飽和演算を高速に実行できる。
また、3次元仮想空間に配置され、各種のテクスチャ情報が付加されたポリゴン情報を、Zバッファ法によりレンダリングして、所定の視点位置から3次元仮想空間に配置されたポリゴンを俯瞰したレンダリング画像を得る演算の高速実行も可能である。
さらに、CPU 101と画像演算プロセッサが協調動作することにより、文字の形状を定義するフォント情報にしたがって、文字列を2次元画像としてフレームメモリへ描画したり、各ポリゴン表面へ描画することが可能である。フォント情報は、ROM 102に記録されているが、DVD−ROMに記録された専用のフォント情報を利用することも可能である。
NIC 109は、ゲーム装置100をインターネット等のコンピュータ通信網(図示せず)に接続するためのものである。NIC 109は、例えばLAN(Local Area Network)を構成する際に用いられる10BASE−T/100BASE−T規格に準拠するものや、電話回線を用いてインターネットに接続するためのアナログモデム、ISDN(Integrated Services Digital Network)モデム、ADSL(Asymmetric Digital Subscriber Line)モデム、ケーブルテレビジョン回線を用いてインターネットに接続するためのケーブルモデム等と、これらとCPU 101との仲立ちを行うインターフェイス(図示せず)により構成される。
インターネット内のSNTPサーバにNIC 109を介して接続し、ここから情報を取得することによって現在の日時情報を得ることができる。また、各種のネットワークゲームのサーバ装置が、SNTPサーバと同様の機能を果たすように構成設定してもよい。
音声処理部110は、DVD−ROMから読み出した音声データをアナログ音声信号に変換し、これに接続されたスピーカ(図示せず)から出力させる。また、CPU 101の制御の下、ゲームの進行の中で発生させるべき効果音や楽曲データを生成し、これに対応した音声をスピーカから出力させる。
このほか、ゲーム装置100は、ハードディスク等の大容量外部記憶装置を用いて、ROM 102、RAM 103、DVD−ROMドライブ108に装着されるDVD−ROM等と同じ機能を果たすように構成してもよい。
なお、本実施の形態に係る記憶処理装置は、ゲーム装置100や、携帯式のゲーム装置上に実現されるが、一般的なコンピュータ上に実現することもできる。一方、本実施の形態に係る情報提供サーバ300は、通常一般的なコンピュータ上に実現されるが、ゲーム装置100を情報提供サーバ300として利用してもよい。一般的なコンピュータは、上記ゲーム装置100と同様に、CPU、RAM、ROM、DVD−ROM ドライブ、および、NICを備え、ゲーム装置100よりも簡易な機能を備えた画像処理部を備え、外部記憶装置としてハードディスクを有する他、フレキシブルディスク、光磁気ディスク、磁気テープ等が利用できるようになっている。また、コントローラではなく、キーボードやマウスなどを入力装置として利用する。そして、プログラムをインストールした後に、そのプログラムを実行させると、記憶処理装置や情報提供サーバとして機能させることができる。
以下では、注記しない限り、記憶処理装置200、および情報提供サーバ300について、図1に示したゲーム装置100により説明を加える。記憶処理装置200、および情報提供サーバ300は、必要に応じて適宜一般的なコンピュータの要素に置換することができ、これらの実施の形態も本発明の範囲に含まれる。
図2は、本実施の形態に係る記憶処理装置200と情報提供サーバ300の概要構成を示す模式図である。なお、図2では、理解を容易にするため、記憶処理装置200と情報提供サーバ300を1つずつ示しているが、典型的には、図3に示すように、情報提供サーバ300に対して、1つ以上の記憶処理装置200が通信ネットワーク10を介して接続された構成を有する。以下本図を参照してまず、記憶処理装置200から説明する。
記憶処理装置200は、データの不正な書き換えを抑制する装置であり、典型的には、ゲーム端末等に適用される。記憶処理装置200は、図2に示すように、パラメータ記憶部201、テーブル記憶部202、アドレス取得部203、読書き部204、そして更新部205、テーブル受信部206、返信部207等を備える。
以下に記憶処理装置200の各構成要素について説明する。
パラメータ記憶部201は、上述したように、ゲームの状態を表現する種々のパラメータを記憶する。パラメータ記憶部201は典型的には、メモリカードなどの外部メモリ106、即ち、不揮発性記憶装置から構成される。パラメータ記憶部201に記憶されるパラメータ群は、適宜後述の読書き部204等によってアクセスされる。
テーブル記憶部202は、パラメータ記憶部201に保存されている各種パラメータデータにアクセスするための仮想アドレスと、パラメータ記憶部201内の実際にパラメータデータが保存されている実アドレスと、を対応付けるアドレス変換テーブルを記憶する。典型的にはRAM 103などの揮発性記憶装置がテーブル記憶部202として機能する。
アドレス取得部203は、仮想アドレスを入力として、テーブル記憶部202に記憶されたアドレス変換テーブルを参照して、当該アドレスに対応する実アドレスを取得する。CPU 101、RAM 103、などが協働して動作することにより、アドレス取得部203として機能する。
読書き部204は、上述したように、パラメータ記憶部201に対してゲーム状態をセーブしたり、ロードする処理において、パラメータ記憶部201に実際にアクセスする部分を担う。セーブやロード処理の実行は、典型的には、プレイヤーがインターフェイス104を介して接続された入力装置を操作して指示する。そして、当該指示に応答して、ゲームプログラム中のセーブ/ロードプログラムがRAM 103に展開され、CPU101は、展開されたプログラムにしたがって、セーブ/ロード処理を実行する。これらセーブ/ロード処理においては、仮想アドレスを指定したアクセス要求が読書き部204に対して発行される。読書き部204は指定された仮想アドレスに対応付けられた実アドレスを、アドレス変換テーブルを参照して取得し、当該実アドレスに対し、実際の読書きを行う。このように、CPU 101、RAM 103、などが協働して動作することにより、読書き部204として機能する。
テーブル受信部206は、情報提供サーバ300からアドレス変換テーブル等を受信する。NIC109などが、テーブル受信部206として機能する。
更新部205は、テーブル受信部206が受信した新たなアドレス変換テーブルで、テーブル記憶部202内に記憶されたアドレス変換テーブルを上書きして更新する。また、アドレス変換テーブルが変わっても、データの整合性を保つために、即ち、同じ仮想アドレスを指定したときに、同じデータにアクセスできるように、更新部205はパラメータ記憶部201のデータを入れ替える。整合性維持の詳細については動作説明部分にて後述する。このように、CPU 101、RAM 103、などが協働して、更新部205として機能する。
返信部207は、新たに情報提供サーバ300からアドレス変換テーブルを受信すると、次の処理を行う。即ち、アドレス変換テーブルに対して不正な書き込みがあったかどうかを情報提供サーバ300に判定してもらうために、情報提供サーバ300にアドレス変換テーブルや自分を識別するための識別情報を送信する。このように、CPU 101、RAM 103、NIC109などが協働して、返信部207として機能する。
次に、情報提供サーバ300について、同じく図2を参照して説明する。なお、ここでは、情報提供サーバ300は、記憶処理装置200とは別のゲーム装置100によって情報提供サーバ300を実現するものとして説明する。
候補記憶部301は、記憶処理装置200に送信するために複数のアドレス変換テーブルを記憶する。アドレス変換テーブルは、例えば、予め作成してハードディスクなどの外部メモリ106に記憶しておき、起動時に、RAM 103などに読み込まれて利用するようにしてもよい。このように、CPU 101、RAM 103、外部メモリ106などが協働して候補記憶部301として機能する。
テーブル送信部302は、所定のタイミングで、例えば、所定の時間間隔で、あるいは、所定の時刻で、記憶処理装置200に候補記憶部301に記憶される複数のアドレス変換テーブルの中から1つを送信する。複数の中からどのアドレス変換テーブルを送信するかは、例えばランダムに選択すればよい。このように、CPU 101、RAM 103、NIC 109などが協働して、テーブル送信部302として機能する。
送信情報記憶部303は、図9に示すように、テーブル送信部302の送信したアドレス変換テーブルと、その送信先の記憶処理装置200を対応付けて記憶する。例えば、候補記憶部301は、アドレス変換テーブルに対応付けて当該テーブルを識別するテーブル識別番号を記憶させてもよい。そして、送信情報記憶部303は、当該テーブル識別情報と、送信した先の記憶処理装置200を識別する識別情報とを対応付けて記憶する。送信情報記憶部303の内容は、ハードディスクなどの外部メモリ106に記憶され、適宜RAM 103を介してアクセスされる。このように、CPU 101、RAM 103、外部メモリ106が協働して、送信情報記憶部303として機能する。
受信部304は、記憶処理装置200から、アドレス変換テーブルと、当該記憶処理装置200を識別する識別情報を受信する。このように、NIC109が、主に受信部304として機能する。
判定部305は、受信部304から受信したアドレス変換テーブルに不正な書き込みがなかったどうかを、候補記憶部301に記憶されたアドレス変換テーブルと比較することで判定する。動作の詳細は後述するが、判定部305は、候補記憶部301を参照するため、CPU 101、RAM 103、などが協働して候補記憶部305として機能する。
以上のような構成を有する記憶処理装置200、および情報提供サーバ300の動作をについて以下に説明する。
(アドレス変換テーブルの更新)
図4は、記憶処理装置200が、情報提供サーバ300の送信したアドレス変換テーブルを、自分のアドレス変換テーブルとして更新するフローを示す図である。
まず、情報提供サーバ300のテーブル送信部302は所定のタイミング(例えば、所定の時間間隔、所定の時刻、あるいは、記憶処理装置200がネットワークに接続され、情報提供サーバ300に信号を送信したタイミングでもよい)で、候補記憶部301の中から、例えばランダムに1つアドレス変換テーブルを選択する(ステップS101)。そして、当該テーブルを記憶処理装置200に送信する(ステップS102)。
ここで、記憶処理装置200の識別情報(例えばシリアル番号)は予めプレイヤーによって情報提供サーバ300に登録されているものとする。あるいは、記憶処理装置200には、情報提供サーバ300のネットワークアドレスをROM 102などに記憶させておき、初めて通信ネットワーク10に接続した際に、必ず自己の記憶処理装置識別情報を情報提供サーバ300に送信するようにしてもよい。そして受信した情報提供サーバ300は、これをハードディスクなどの外部メモリ106に記憶させてもよい。情報提供サーバのテーブル送信部302は、各登録されている記憶処理装置200のそれぞれに対して、所定のタイミングでアドレス変換テーブルを送信する。
送信情報記憶部303はステップS101で選択されたアドレス変換テーブルを識別するテーブル識別情報と、当該アドレス変換テーブルの送信先の記憶処理装置の識別情報とを、対応付けて記憶する(ステップS103)。なお、ステップS103はステップS102と並行して行っても、S102の前に行ってもかまわない。
次いで、記憶処理装置200のテーブル受信部206が、アドレス変換テーブルを受信する(ステップS121)と、更新部205は当該受信されたテーブルをRAM 103へ一時的に記憶させる(ステップS122)。そして、同じ仮想アドレスを指定した際に、現在テーブル記憶部202に記憶されているアドレス変換テーブルを参照して得られる実アドレスに記憶されるデータと、新しく受信したアドレス変換テーブルを参照して得られる実アドレスに記憶されるデータとが一致するように、実アドレスに記憶されるデータを入れ替える(ステップS123)。
図5にパラメータ記憶部201内のデータを入れ替える様子を示す。古いアドレス変換テーブルをA、新たなアドレス変換テーブルをB、とする。このとき、例えば仮想アドレス0を指定すると、テーブルAを参照した場合、実アドレス1が取得され、パラメータ記憶部201内の実アドレス1に記憶された0x01が読み出される(0xは16進を意味する)。一方、同じように仮想アドレス0を指定しても、テーブルBを参照した場合、実アドレスnが得られる。したがって、データを入れ替えた後のパラメータ記憶部201’のアドレスnには、データを入れ替える前のパラメータ記憶部201のアドレス1に記憶されるデータ、0x01が記憶されるようにパラメータ記憶部201内データを入れ替える必要がある。
同様に、テーブルAを参照して、仮想アドレス1を参照すると、実アドレスnが、そしてテーブルBを参照して、仮想アドレス1を参照すると、実アドレス0がそれぞれ取得される。したがって、パラメータ記憶部201’の実アドレス0には、パラメータ記憶部201の実アドレスnに記憶されるデータ0x12が記憶されるようにデータが入れ替えられる。
全てのデータを同じ要領で入れ替えると、図5の下部に示すようなデータ構成を有するパラメータ記憶部201’が得られる。なお、データの入替処理を実行中は、パラメータ記憶部201に対するデータの読書きは行わない。
実アドレスのデータの入替えが終了すると、更新部205はステップS122でRAM 103に一時記憶された新たなテーブルをテーブル記憶部202に保存して(ステップS124)、アドレス変換テーブルの更新処理を終える。
(アドレス変換テーブルに対する不正行為の判定)
記憶処理装置200は、自己の有するアドレス変換テーブルを情報提供サーバ300に送信すると、情報提供サーバ300は、当該テーブルに不正な書き換えがあったかどうか判定する。この不正判定の処理を図6を参照して説明する。
ステップS124でテーブル記憶部202に新たなアドレス変換テーブルを保存すると、記憶処理装置200の返信部207は、古いアドレス変換テーブルと、自己を識別する記憶処理装置識別情報と、を情報提供サーバ300へ送信する(ステップS201)。なお、更新部205は新たなアドレス変換テーブルをテーブル記憶部202に保存する際に、古いアドレス変換テーブルをRAM 103に一時的に記憶させ、更新部205はこのRAM 103に記憶されたテーブルを送信するものとする。
次いで、情報提供サーバ300の受信部304は、返信部207から送信されたデータを受信する(ステップS221)と、判定部305は、送信情報記憶部303を参照して、受信された記憶処理装置識別情報に対応付けられるテーブル識別情報を取得する。そして、取得したテーブル識別情報に対応付けられるアドレス変換テーブルを取得する(ステップS222)。判定部305は当該取得されたアドレス変換テーブルと、ステップS221)で記憶処理装置から受信したアドレス変換テーブルとを比較する(ステップS223)。両テーブルが一致すれば(ステップS224;Yes)、判定部305は、記憶処理装置200におけるアドレス変換テーブルの不正な書き換えはなかったと判定し(ステップS225)処理を終了する。一方、両者が一致しなかった場合(ステップS226;No)、不正な書き換えがあったと判定し、例えば、当該記憶処理装置識別情報を有する記憶処理装置へ、警告を出すなどの、対応処置を行う。
(データの読出し)
上記のように更新されるアドレス変換テーブルを用いて、データの読出しを行う場合の処理について、図7を参照して説明する。
記憶処理装置200が電源を投入され、且つメモリカードなどの外部メモリ106が差し込まれた状態で、プレイヤーがコントローラ105などの操作部を操作して、パラメータ記憶部201に記憶されたパラメータ群をロードするように指示したとする。CPU 101は指示に従って、上述したように、ロードプログラムを実行し、ロード処理が開始される。
記憶処理装置200のCPU 101は、ロードプログラムに従って、まず、テーブル記憶部202にアドレス変換テーブルが記憶されているか否かを判断する(ステップS301)。本実施の形態に係る記憶処理装置200においては、書き換えを困難にするために、アドレス変換テーブルはRAM 103のみに記憶する。よって、電源が落とされると、テーブルの情報は消えてしまう。そのため、読出し処理が、電源を入れてから最初の読み出し処理である場合は、電源を切る前に利用していたアドレス変換テーブルを情報提供サーバ300から受信する必要がある。
アドレス変換テーブルがテーブル記憶部202に記憶されていないと判断された場合(ステップS301;No)、記憶処理装置200の返信部207は、自己を識別する記憶処理装置識別情報を情報提供サーバ300に送信する(ステップS302)。情報提供サーバ300の受信部304は、記憶処理識別情報を受信する(ステップS321)。テーブル送信部302は、当該受信した記憶処理識別情報に対応付けて記憶されるテーブル識別情報によって特定されるアドレス変換テーブルを、候補記憶部301から取得する(ステップS322)。そして、当該特定されたテーブルを記憶処理装置200へ送信する(ステップS323)。記憶処理装置のテーブル受信部206は、テーブルを受信(ステップ303)して、テーブル記憶部202に記憶する(ステップS304)。
なお、ステップS301でYesと判断された場合、処理はステップS305へと進む。
次いで、記憶処理装置200のCPU 101はパラメータそれぞれの記憶された仮想アドレス、およびデータ長を指定して、読み出し要求を読書き部204に送信する(ステップS305)。読書き部204は、アドレス取得部203を制御して、当該仮想アドレスに対応する実アドレスを取得する(ステップS306)。読書き部204は、取得された実アドレスに記憶されるデータを読み出す(ステップS307)。全てのパラメータの読出しが終了するまで、ステップS305〜S307が繰り返される。
例えば、アドレス変換テーブルの更新の処理にて説明したように、図5に示したアドレス変換テーブルAを保有していたときに、仮想アドレス0に記憶されたデータを指定して読み出し要求を発行すると、実アドレス1が取得され、パラメータ記憶部201内の実アドレス1に記憶された0x01が読み出される(0xは16進を意味する)。
次に、例えば、アドレス変換テーブルAを参照したときに、仮想アドレス1を指定してshort型(即ち保存に2バイト必要)データを読み出したいとする。この場合、ロードプログラムにおいては、仮想アドレス1から2バイト長データを読み出したいという読出し要求を読書き部204に発行する。読み出し要求を受け取ると、読書き部204は、アドレス取得部を制御して、仮想アドレス1と、仮想アドレス2に対応する実アドレスn、および、実アドレス0を取得する。そして、実アドレスnおよび0のそれぞれに記憶されているデータ(0x12および0x00)を取得し、正しいバイトオーダに並べて2バイト長データとして返す。例えば、バイトオーダがビッグエンディアンであれば、0x12が上位バイト、0x00が下位バイトとなり、0x1200(即ち十進数で4608)が得られる。
同様にnバイト必要なデータは開始アドレスからn−1までの仮想アドレスにのそれぞれに対応する実アドレスのデータを取得し、正しいバイトオーダに並べて、nバイト長のデータとして返す。
(データの書込み)
記憶処理装置200が電源を投入され、且つメモリカードなどの外部メモリ106が差し込まれた状態で、プレイヤーがコントローラ105などの操作部を操作して、ゲームの状態を表現する各種パラメータをパラメータ記憶部201にセーブするように指示したとする。CPU 101は指示に従って、セーブプログラムを実行する。
記憶処理装置200のCPU 101は、セーブプログラムに従って、まず、読み出し処理のステップS301と同様に、テーブル記憶部202にアドレス変換テーブルが記憶されているか否かを判断する(ステップS401)。そして変換テーブルがテーブル記憶部202に記憶されていないと判断された場合、ステップS302、S321〜S323、S302〜S304と同様の処理である、ステップS402、S421〜S423、S402〜S403を実行して、アドレス変換テーブルを情報提供サーバ300から受信する。
次いで、記憶処理装置200のCPU 101はパラメータそれぞれを記憶する仮想アドレス、データ長、および書き込むべきデータを指定して、書込み要求を読書き部204に送信する(ステップS405)。読書き部204は、アドレス取得部203を制御して、当該仮想アドレスに対応する実アドレスを取得する(ステップS406)。読書き部204は、読み出し時とは逆の要領で、指定されたバイト数をまたがって実アドレスを取得し、書き込むべきデータをバイト毎に分割して、対応する実アドレスに書き込んでいく(ステップS407)。全てのパラメータの書込みが終了するまで、ステップS405〜S407が繰り返される。
このように、上記実施の形態は、アドレス変換テーブルを採用し、これを所定のタイミングで更新することによって、パラメータがメモリカード上のどの位置に記憶されるのかを推定しにくくする。これにより、不正なパラメータの書き換えを抑制することが可能となる。上記実施の形態では、不揮発性記憶媒体であるパラメータ記憶部に対する読書きを、仮想アドレスを指定して行っているが、揮発性記憶媒体に本手法を適用しても同様の抑制効果が得られる。
以上、本発明の実施の形態について説明したが、本発明は、上述した実施形態に限定されず、種々の変形および応用が可能である。また、上述した実施形態の各構成要素を自由に組み合わせることも可能である。
例えば、上記実施の形態においては、アドレス変換テーブルを1つのみ使用したが、ゲーム毎、あるいは各ゲームで作成される保存ファイル毎にアドレス変換テーブルを用意してもよい。
また、上記実施の形態においては、1つの情報提供サーバに対して、複数の記憶処理装置が接続されている例を示したが、複数の情報提供サーバを用意して、それぞれの情報提供サーバに複数の記憶処理装置を接続するようにしてもよい。この場合、各記憶処理装置のそれぞれはどの情報提供サーバからアドレス変換テーブルを受信するかは一意に決定され、アドレス変換テーブルに対する不正の有無の判定も、当該記憶処理装置に割り当てられた情報提供サーバが行うようにすればよい。
また、上記実施の形態では、情報提供サーバ側で、送信情報記憶部を備えることで、どの記憶処理装置にどのアドレス変換テーブルを送信したかを管理して、アドレス変換テーブルに対する不正行為の判定を行った。しかし、そうではなく、記憶処理装置側で、どのアドレス変換テーブルを利用したかを記憶させてもよい。
即ち、情報提供サーバ側は、送信情報記憶部を備えない。代わりに、テーブル送信部はアドレス変換テーブルとともに、当該アドレス変換テーブルを識別するテーブル識別情報を記憶処理装置に送信する。なお、テーブル識別情報は、候補記憶部等に記憶されているものとする。
一方、記憶処理装置側では、受信したテーブル識別情報をRAM 103などに一時記憶する。また、電源を落とす場合は、RAM 103 から、カードメモリなどの不揮発性記憶媒体にテーブル識別情報を移行する。返信部は、アドレス変換テーブルと共に、記憶したテーブル識別情報を、情報提供サーバへ送信する。そして、情報提供サーバ側は、例えば、受信したテーブル識別情報に対応付けられるアドレス変換テーブルを候補記憶部から取得し、取得されたアドレス変換テーブルを記憶処理装置から受信したものとを比較すればよい。
また、上記実施の形態では、記憶処理装置は、不正書込みの判定のため、アドレス変換テーブル自体を情報提供サーバに送信した。そうではなく、テーブル送信部は、アドレス変換テーブルに所定のハッシュ関数を適用した結果(ハッシュ値)を情報提供サーバに送信してもよい。ハッシュ値を送信することで、アドレス変換テーブル自体を送信するよりも通信コストを軽減することができる。情報提供サーバ側は、例えば、図6のステップS221〜223に代えて、ハッシュ値と記憶処理装置識別情報を受信し、取得したアドレス変換テーブルのハッシュ値を求め、両ハッシュ値を比較すればよい。なお、ハッシュ関数は例えばMD5など、既存のものを利用すればよい。
また、上記実施の形態では、情報提供サーバが記憶処理装置に対してアドレス変換テーブルを提供した。そうではなく、記憶処理装置自体がアドレス変換テーブルを生成するようにしてもよい。例えば、図10に示すように、記憶処理装置200’を、テーブル受信部や返信部を備えない構成にする。そして、更新部205’が、所定のタイミング(例えば、定時、あるいは所定の時間間隔)でアドレス変換テーブルをランダムに入れ替えて更新する。後は、図4に示すステップS122〜S124と同様の処理を行い、テーブル更新処理を実行する。
ただし、このように、記憶処理装置が自前でアドレス変換テーブルを生成する場合は、電源を投入した際に、電源を切る前のアドレス変換テーブルの内容を回復する必要がある。よって、実行時は、テーブル記憶部として、RAMなどの不揮発性記憶媒体を利用し、電源を切る際には、メモリカードなどの不揮発性記憶媒体にテーブル記憶部の内容を移行する必要がある。
本発明の実施の形態に係る記憶処理装置等が実現される典型的なゲーム装置の概要構成を示す模式図である。 本実施の形態に係る記憶処理装置、および、情報提供サーバの概要構成を示すブロック図である。 本実施の形態で想定している記憶処理装置、および、情報提供サーバの接続例を示す図である。 本実施の形態に係るアドレス変換テーブルの更新処理を説明するフロー図である。 アドレス変換テーブルの更新時に、パラメータ記憶部内のデータの入れ替えを行った例を説明するフロー図である。 本実施の形態に係る不正行為の判定処理を説明するフロー図である。 本実施の形態に係る読出し処理を説明するフロー図である。 本実施の形態に係る書込み処理を説明するフロー図である。 本実施の形態に係る送信情報記憶部の構成例を示した図である。 本発明の他の実施の形態に係る記憶処理装置の概要構成示すブロック図である。
符号の説明
100 ゲーム装置
101 CPU
102 ROM
103 RAM
104 インターフェイス
105 コントローラ
106 外部メモリ
107 画像処理部
108 DVD−ROMドライブ
109 NIC
110 音声処理部
200 記憶処理装置
201 パラメータ記憶部
202 テーブル記憶部
203 アドレス取得部
204 読書き部
205 更新部
206 テーブル受信部
207 返信部
300 情報提供サーバ
301 候補記憶部
302 テーブル送信部
303 送信情報記憶部
304 テーブル送信部
305 判定部

Claims (16)

  1. パラメータ群が記憶されるパラメータ記憶部と、
    当該パラメータ群の各パラメータが記憶される前記パラメータ記憶部内の実アドレスと、当該パラメータにアクセスするために指定する仮想アドレスと、を対応付けるアドレス変換テーブルを記憶するテーブル記憶部と、
    指定された仮想アドレスを入力として、前記アドレス変換テーブルを参照して、前記パラメータ記憶部の実アドレスを取得するアドレス取得部と、
    指定された仮想アドレスに対する読書き要求を受信すると、前記アドレス取得部を制御して、当該仮想アドレスに対応する実アドレスを取得し、前記パラメータ記憶部の当該取得した実アドレスに対して読書きを行う読書き部と、
    前記アドレス変換テーブルを所定のタイミングで更新し、さらに、各仮想アドレスを指定した際に、更新前の前記アドレス変換テーブルを参照して得られる実アドレスに記憶されるデータと、更新後の前記アドレス変換テーブルを参照して得られる実アドレスに記憶されるデータとが一致するように、実アドレスに記憶されるデータを更新する更新部と、
    を備える、ことを特徴とする記憶処理装置。
  2. 請求項1に記載の記憶処理装置であって、
    前記更新部は、所定のタイミングで、実アドレスと仮想アドレスとの対応付けをランダムに入れ替えて、前記アドレス変換テーブルを更新する、
    ことを特徴とする記憶処理装置。
  3. 請求項1に記載の記憶処理装置であって、
    前記記憶処理装置はネットワークを介して情報提供サーバに接続されており、
    前記アドレス変換テーブルを前記情報提供サーバから受信するテーブル受信部をさらに備え、
    前記更新部は、前記受信したアドレス変換テーブルによって、前記アドレス変換テーブルを更新する、
    ことを特徴とする記憶処理装置。
  4. 請求項3に記載の記憶処理装置であって、
    前記更新部が、当該アドレス変換テーブルと、当該実アドレスに記憶されるデータとを更新すると、更新される直前に前記テーブル記憶部に記憶されていたアドレス変換テーブルと、自己を識別する記憶処理装置識別情報と、を前記情報提供サーバに返信する返信部、
    をさらに備える、ことを特徴とする記憶処理装置。
  5. 請求項4に記載の記憶処理装置であって、
    前記返信部は、前記アドレス変換テーブルに代えて、更新される直前に前記テーブル記憶部に記憶されていた当該アドレス変換テーブルに所定のハッシュ関数を適用した結果を、前記情報提供サーバに返信する、
    ことを特徴とする記憶処理装置。
  6. 請求項4に記載の記憶処理装置であって、
    前記テーブル受信部は、前記情報提供サーバから、アドレス変換テーブルに対応付けられるテーブル識別情報をさらに受信し、
    前記返信部は、前記自己を識別する記憶処理装置識別情報に変えて、前記受信したテーブル識別情報を前記情報提供サーバに返信する、
    ことを特徴とする記憶処理装置。
  7. 請求項3に記載の記憶処理装置であって、
    前記パラメータ記憶部は不揮発性記憶媒体であり、前記テーブル記憶部は揮発性記憶媒体である、
    ことを特徴とする記憶処理装置。
  8. ネットワークを介して記憶処理装置に接続された情報提供サーバであって、
    前記記憶処理装置の実アドレスと、前記実アドレスのそれぞれにアクセスするために指定する仮想アドレスとを対応付けるアドレス変換テーブルを複数記憶する候補記憶部と、
    前記記憶処理装置へ所定のタイミングで当該アドレス変換テーブルを送信するテーブル送信部と、
    当該アドレス変換テーブルと、当該アドレス変換テーブルの送信先の前記記憶処理装置を識別する記憶処理装置識別情報と、を対応付けて記憶する送信情報記憶部と、
    前記記憶処理装置から返信されたアドレス変換テーブルと、送信元の前記記憶処理装置を識別する記憶処理装置識別情報と、を受信する受信部と、
    前記送信情報記憶部を参照して、受信した当該記憶処理装置識別情報に対応づけられたアドレス変換テーブルを取得し、当該アドレス変換テーブルと、受信したアドレス変換テーブルと、を比較し、両テーブルが一致した場合はデータの改ざんがなく、両テーブルが一致しない場合はデータの改ざんがあった、と判定する判定部と、
    を備える、
    ことを特徴とする情報提供サーバ。
  9. 請求項8に記載の情報提供サーバであって、
    前記受信部は、前記アドレス変換テーブルに代えて、前記アドレス変換テーブルに所定のハッシュ関数を適用した結果を前記記憶処理装置から受信し、
    前記判定部は、前記送信情報記憶部を参照して、受信した当該記憶処理装置識別情報に対応づけられたアドレス変換テーブルを取得し、当該アドレス変換テーブルに所定のハッシュ値関数を適用した結果と、受信したハッシュ値と、を比較し、両者が一致した場合はデータの改ざんがなく、両者が一致しない場合はデータの改ざんがあった、と判定する、
    ことを特徴とする情報提供サーバ。
  10. ネットワークを介して記憶処理装置に接続された情報提供サーバであって、
    前記記憶処理装置の実アドレスと、前記実アドレスのそれぞれにアクセスするために指定する仮想アドレスとを対応付けるアドレス変換テーブルを複数記憶し、当該アドレス変換テーブルのそれぞれに対して、当該アドレス変換テーブルを識別するテーブル識別情報を記憶する候補記憶部と、
    前記記憶処理装置へ所定のタイミングで当該アドレス変換テーブルと、対応するテーブル識別情報と、を送信するテーブル送信部と、
    前記記憶処理装置から返信されたアドレス変換テーブルと、対応するテーブル識別情報と、を受信する受信部と、
    当該テーブル識別情報に対応するアドレス変換テーブルを前記候補記憶部から取得し、当該アドレス変換テーブルと、受信したアドレス変換テーブルと、を比較し、両テーブルが一致した場合はデータの改ざんがなく、両テーブルが一致しない場合データの改ざんがあった、と判定する判定部と、
    を備える、
    ことを特徴とする情報提供サーバ。
  11. パラメータ記憶部と、テーブル記憶部と、アドレス取得部と、読書き部と、更新部と、を備える記憶処理装置の動作方法であって、
    前記パラメータ記憶部が、パラメータ群を記憶するパラメータ記憶工程と、
    前記テーブル記憶部が、当該パラメータ群の各パラメータが記憶される前記パラメータ記憶部内の実アドレスと、当該パラメータにアクセスするために指定する仮想アドレスと、を対応付けるアドレス変換テーブルを記憶するテーブル記憶工程と、
    前記アドレス取得部が、指定された仮想アドレスを入力として、前記アドレス変換テーブルを参照して、前記パラメータ記憶部の実アドレスを取得するアドレス取得工程と、
    前記読書き部が、指定された仮想アドレスに対する読書き要求を受信すると、前記アドレス取得部を制御して、前記パラメータ記憶部の、当該仮想アドレスに対応する実アドレスを取得し、前記パラメータ記憶部の当該取得した実アドレスに対して読書きを行う読書き工程と、
    前記更新部が、前記アドレス変換テーブルを所定のタイミングで更新し、さらに、各仮想アドレスを指定した際に、更新前の前記アドレス変換テーブルを参照して得られる実アドレスに記憶されるデータと、更新後の前記アドレス変換テーブルを参照して得られる実アドレスに記憶されるデータとが一致するように、実アドレスに記憶されるデータを更新する更新工程と、
    を備える、ことを特徴とする記憶処理装置の動作方法。
  12. 候補記憶部と、テーブル送信部と、送信情報記憶部と、受信部と、判定部と、を備える、ネットワークを介して記憶処理装置に接続された情報提供サーバの動作方法であって、
    前記候補記憶部が、前記記憶処理装置の実アドレスと、前記実アドレスのそれぞれにアクセスするために指定する仮想アドレスとを対応付けるアドレス変換テーブルを複数記憶する候補記憶工程と、
    前記テーブル送信部が前記記憶処理装置へ所定のタイミングで当該アドレス変換テーブルを送信するテーブル送信工程と、
    前記送信情報記憶部が、当該アドレス変換テーブルと、当該アドレス変換テーブルの送信先の前記記憶処理装置を識別する記憶処理装置識別情報と、を対応付けて記憶する送信情報記憶工程と、
    前記受信部が、前記記憶処理装置から返信されたアドレス変換テーブルと、送信元の前記記憶処理装置を識別する記憶処理装置識別情報と、を受信する受信工程と、
    前記判定部が、前記送信情報記憶部を参照して、受信した当該記憶処理装置識別情報に対応づけられたアドレス変換テーブルを取得し、当該アドレス変換テーブルと、受信したアドレス変換テーブルと、を比較し、両テーブルが一致した場合はデータの改ざんがなく、両テーブルが一致しない場合はデータの改ざんがあった、と判定する判定工程と、
    を備える、
    ことを特徴とする、情報提供サーバの動作方法。
  13. 候補記憶部と、テーブル送信部と、受信部と、判定部と、を備える、ネットワークを介して記憶処理装置に接続された情報提供サーバの動作方法であって、
    前記候補記憶部が、前記記憶処理装置の実アドレスと、前記実アドレスのそれぞれにアクセスするために指定する仮想アドレスとを対応付けるアドレス変換テーブルを複数記憶し、当該アドレス変換テーブルのそれぞれに対して、当該アドレス変換テーブルを識別するテーブル識別情報を記憶する候補記憶工程と、
    前記テーブル送信部が、前記記憶処理装置へ所定のタイミングで当該アドレス変換テーブルと、対応するテーブル識別情報と、を送信するテーブル送信工程と、
    前記受信部が、前記記憶処理装置から返信されたアドレス変換テーブルと、対応するテーブル識別情報と、を受信する受信工程と、
    前記判定部が、当該テーブル識別情報に対応するアドレス変換テーブルを前記候補記憶部から取得し、当該アドレス変換テーブルと、受信したアドレス変換テーブルと、を比較し、両テーブルが一致した場合はデータの改ざんがなく、両テーブルが一致しない場合データの改ざんがあった、と判定する判定工程と、
    を備える、
    ことを特徴とする、情報提供サーバの動作方法。
  14. コンピュータを、記憶処理装置として機能させるプログラムであって、
    前記プログラムは、前記コンピュータを、
    パラメータ群が記憶されるパラメータ記憶部、
    当該パラメータ群の各パラメータが記憶される前記パラメータ記憶部内の実アドレスと、当該パラメータにアクセスするために指定する仮想アドレスと、を対応付けるアドレス変換テーブルを記憶するテーブル記憶部、
    指定された仮想アドレスを入力として、前記アドレス変換テーブルを参照して、前記パラメータ記憶部の実アドレスを取得するアドレス取得部、
    指定された仮想アドレスに対する読書き要求を受信すると、前記アドレス取得部を制御して、当該仮想アドレスに対応する実アドレスを取得し、前記パラメータ記憶部の当該取得した実アドレスに対して読書きを行う読書き部、
    前記アドレス変換テーブルを所定のタイミングで更新し、さらに、各仮想アドレスを指定した際に、更新前の前記アドレス変換テーブルを参照して得られる実アドレスに記憶されるデータと、更新後の前記アドレス変換テーブルを参照して得られる実アドレスに記憶されるデータとが一致するように、実アドレスに記憶されるデータを更新する更新部、
    として機能させる、
    ことを特徴とするプログラム。
  15. ネットワークを介して記憶処理装置に接続されたコンピュータを、情報提供サーバとして機能させるプログラムであって、
    前記プログラムは、前記コンピュータを、
    前記記憶処理装置の実アドレスと、前記実アドレスのそれぞれにアクセスするために指定する仮想アドレスとを対応付けるアドレス変換テーブルを複数記憶する候補記憶部、
    前記記憶処理装置へ所定のタイミングで当該アドレス変換テーブルを送信するテーブル送信部、
    当該アドレス変換テーブルと、当該アドレス変換テーブルの送信先の前記記憶処理装置を識別する記憶処理装置識別情報と、を対応付けて記憶する送信情報記憶部、
    前記記憶処理装置から返信されたアドレス変換テーブルと、送信元の前記記憶処理装置を識別する記憶処理装置識別情報と、を受信する受信部、
    前記送信情報記憶部を参照して、受信した当該記憶処理装置識別情報に対応づけられたアドレス変換テーブルを取得し、当該アドレス変換テーブルと、受信したアドレス変換テーブルと、を比較し、両テーブルが一致した場合はデータの改ざんがなく、両テーブルが一致しない場合はデータの改ざんがあった、と判定する判定部、
    として機能させる、
    ことを特徴とするプログラム。
  16. ネットワークを介して記憶処理装置に接続されたコンピュータを、情報提供サーバとして機能させるプログラムであって、
    前記プログラムは、前記コンピュータを
    前記記憶処理装置の実アドレスと、前記実アドレスのそれぞれにアクセスするために指定する仮想アドレスとを対応付けるアドレス変換テーブルを複数記憶し、当該アドレス変換テーブルのそれぞれに対して、当該アドレス変換テーブルを識別するテーブル識別情報を記憶する候補記憶部、
    前記記憶処理装置へ所定のタイミングで当該アドレス変換テーブルと、対応するテーブル識別情報と、を送信するテーブル送信部、
    前記記憶処理装置から返信されたアドレス変換テーブルと、対応するテーブル識別情報と、を受信する受信部、
    当該テーブル識別情報に対応するアドレス変換テーブルを前記候補記憶部から取得し、当該アドレス変換テーブルと、受信したアドレス変換テーブルと、を比較し、両テーブルが一致した場合はデータの改ざんがなく、両テーブルが一致しない場合データの改ざんがあった、と判定する判定部、
    として機能させる、
    ことを特徴とするプログラム。
JP2007284837A 2007-11-01 2007-11-01 記憶処理装置、情報提供サーバ、動作方法、ならびに、プログラム Active JP4554660B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007284837A JP4554660B2 (ja) 2007-11-01 2007-11-01 記憶処理装置、情報提供サーバ、動作方法、ならびに、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007284837A JP4554660B2 (ja) 2007-11-01 2007-11-01 記憶処理装置、情報提供サーバ、動作方法、ならびに、プログラム

Publications (2)

Publication Number Publication Date
JP2009110476A true JP2009110476A (ja) 2009-05-21
JP4554660B2 JP4554660B2 (ja) 2010-09-29

Family

ID=40778864

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007284837A Active JP4554660B2 (ja) 2007-11-01 2007-11-01 記憶処理装置、情報提供サーバ、動作方法、ならびに、プログラム

Country Status (1)

Country Link
JP (1) JP4554660B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011087650A (ja) * 2009-10-20 2011-05-06 Konami Digital Entertainment Co Ltd ゲームシステム
JP2012155500A (ja) * 2011-01-26 2012-08-16 Nintendo Co Ltd 情報処理プログラム、情報処理装置、情報処理方法および情報処理システム
US9032182B2 (en) 2010-10-28 2015-05-12 Denso Corporation Electronic apparatus with storage media having real address designated by stimulated request format and storage media having real address not designated by stimulated request format
JP2019118768A (ja) * 2018-01-11 2019-07-22 株式会社バンダイナムコエンターテインメント プログラム及びゲーム装置
JP2021509216A (ja) * 2017-12-28 2021-03-18 マイクロン テクノロジー,インク. 不揮発性メモリ内のトリムパラメータをアップデートするための技術

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07153285A (ja) * 1993-11-29 1995-06-16 Sansei Denshi Japan Kk 不揮発性フラッシュメモリの制御方法とその装置
JP2005144055A (ja) * 2003-11-19 2005-06-09 Creatures Inc ゲームデータ制御プログラム、ゲームデータ書換プログラムおよびゲームデータ書換装置
JP2005149262A (ja) * 2003-11-18 2005-06-09 Renesas Technology Corp 情報処理装置
WO2006078531A2 (en) * 2005-01-20 2006-07-27 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
JP2006228407A (ja) * 2005-01-19 2006-08-31 Saifun Semiconductors Ltd 固定パターンプログラミングを防止するための方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07153285A (ja) * 1993-11-29 1995-06-16 Sansei Denshi Japan Kk 不揮発性フラッシュメモリの制御方法とその装置
JP2005149262A (ja) * 2003-11-18 2005-06-09 Renesas Technology Corp 情報処理装置
JP2005144055A (ja) * 2003-11-19 2005-06-09 Creatures Inc ゲームデータ制御プログラム、ゲームデータ書換プログラムおよびゲームデータ書換装置
JP2006228407A (ja) * 2005-01-19 2006-08-31 Saifun Semiconductors Ltd 固定パターンプログラミングを防止するための方法
WO2006078531A2 (en) * 2005-01-20 2006-07-27 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011087650A (ja) * 2009-10-20 2011-05-06 Konami Digital Entertainment Co Ltd ゲームシステム
US9032182B2 (en) 2010-10-28 2015-05-12 Denso Corporation Electronic apparatus with storage media having real address designated by stimulated request format and storage media having real address not designated by stimulated request format
JP2012155500A (ja) * 2011-01-26 2012-08-16 Nintendo Co Ltd 情報処理プログラム、情報処理装置、情報処理方法および情報処理システム
US9037759B2 (en) 2011-01-26 2015-05-19 Nintendo Co., Ltd. Storage medium, information processing apparatus, information processing method and information processing system
JP2021509216A (ja) * 2017-12-28 2021-03-18 マイクロン テクノロジー,インク. 不揮発性メモリ内のトリムパラメータをアップデートするための技術
JP7219281B2 (ja) 2017-12-28 2023-02-07 マイクロン テクノロジー,インク. 不揮発性メモリ内のトリムパラメータをアップデートするための技術
US11928330B2 (en) 2017-12-28 2024-03-12 Micron Technology, Inc. Techniques to update a trim parameter in non-volatile memory
JP2019118768A (ja) * 2018-01-11 2019-07-22 株式会社バンダイナムコエンターテインメント プログラム及びゲーム装置
JP7014613B2 (ja) 2018-01-11 2022-02-01 株式会社バンダイナムコエンターテインメント プログラム及びゲーム装置

Also Published As

Publication number Publication date
JP4554660B2 (ja) 2010-09-29

Similar Documents

Publication Publication Date Title
US10835819B2 (en) Add-on management methods
JP4810548B2 (ja) サーバ装置、更新画像検出方法およびプログラム
JP4408929B2 (ja) オンラインゲームシステム
JP5792773B2 (ja) プログラム、情報処理装置及び制御方法
CN104598257B (zh) 远程应用程序运行的方法和装置
US9623327B2 (en) Determining triggers for cloud-based emulated games
JP4554660B2 (ja) 記憶処理装置、情報提供サーバ、動作方法、ならびに、プログラム
US20130324266A1 (en) Non-transitory computer-readable storage medium and information processing device
US20130093779A1 (en) Graphics processing unit memory usage reduction
US20140172964A1 (en) Multiple virtual machine memory usage reduction system and method
US20060135230A1 (en) Post-deployment spot creation
WO2019211992A1 (ja) ゲームにおけるユーザの不正を検出するためのシステム、サーバ、プログラム及び方法
US10166467B2 (en) Information processing device, data structure of game data, and recording medium
JP2015088146A (ja) 情報処理装置
JP5308727B2 (ja) ゲーム装置
US20030011592A1 (en) Index processor
JP5112971B2 (ja) ゲーム装置
US8120622B2 (en) Proxy direct 3-D device and remote rendering
JP5660557B2 (ja) ネットワークブートシステム
JP3563398B2 (ja) スコアシステム
JP2015088144A (ja) 情報処理装置およびゲームデータのデータ構造
US9465738B2 (en) Information processing system, control method, program, and recording medium
CN110327626A (zh) 虚拟服务器创建方法及装置
US8799567B2 (en) Method for accessing files in a management system
US20230001299A1 (en) Program, server, method, and system for increasing predictability of enemy next action

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100427

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100524

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100713

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100714

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130723

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4554660

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130723

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140723

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250