カレンダー

2022/12
    
       

広告

Twitter

記事検索

ランダムボタン

マジックナンバーを探した思い出

by 唐草 [2022/12/11]



 ゲーム改造を生業としていたのでちょっと詳しいんだけど、PS3や3DSぐらいの世代からセーブデータは保護されるようになった。
 それ以前は保存容量が小さかったことやPCへの転送が難しいこともあって保護はなかった。なのでセーブを取り出せれば好き放題改造できた。改造しても個人の楽しみの範疇を超えないのでお目溢しされていた時代とも言える。
 そんなヌルい時代は終わりを告げた。オンラインやDLCが絡むので改造セーブデータがあふれると面倒なことが起きてしまう。だから、ゲーム進化に合わせてデータ保護も厳重になっていった。
 ぼくは厳重になり始めたころにセーブデータ改造をしていたので、この分野がどう進化していったのかを肌で感じられた。そして、データ保護がぼくのスキルを超えたので撤退した。
 結果としては負け戦になったが、メーカーとの知恵比べを重ねることで様々な知見を得られたのも事実。これが今でも役に立っている。
 最近のゲームのセーブデータは暗号化されていて中身は確認できない。仮に暗号解読して数値をイジれるようになっても1を100に書き換えるだけでうまくいくほど単純ではない。
 セーブデータの整合性を確認するためのハッシュ値も保存されているからだ。この値はチェックディジットの一種で保存時にセーブデータの内容から算出される。ロード時に再計算したハッシュ値と保存されているハッシュ値が異なると改造があったことがバレてしまう。セーブデータを改造するのであれば、目的のデータを操作するだけでなくハッシュ値の再計算も必要になる。
 この再計算が厄介。
 アルゴリズムはCRC32やMD5など有名なものが採用されている。アルゴリズムは既知だが、セーブデータだけをハッシュ化するだけでなく、セーブデータに何らかのマジックナンバーを付与して計算していることがある。
 このマジックナンバーを見つけるのは超絶難しい。数少ない勝利で得たマジックナンバーは、個人の名前だったこともあれば、謎の日付だったこともある。理屈ではないデータなので、いつだってぼくの手を焼かせたものだ。
 だからハックが楽しいんだけどね。