▼
セーブデータの解析方法 セーブデータ解析ツール
目次①
②
③
・ 解析したアドレスにある数値を改造する方法
・ パッチコードを作成する方法
・ 専門用語
前書き セーブデータ解析
セーブデータを解析する基本は、書き換えたいステータスやフラグ、アイテムIDなどがあるアドレスを特定する事です。 特定したアドレスにある数値を任意の数値へ書き換えて改造します。セーブデータを解析する方法は、前後数値の比較を推奨しています。 アドレス検索や全相違箇所の比較だと検出数が多くアドレスを特定するのが難しくなる場合でも、前後数値の比較だと高い精度でアドレスを特定できます。
セーブデータを解析するのが初めての方は、入門編として所持金の解析・改造を推奨しています。所持金のアドレスを特定して、所持金のアドレスにある数値を増やすという改造に挑戦してみて下さい。
セーブデータの解析については最低限の専門知識が必要で上級者向けの解説になりますので、初心者の方はパッチコードでの改造を推奨しています。
① 初級編 検索 一致箇所 (アドレス検索)
ゲーム内のパラメーター(10進数)を16進数に変換した数値でセーブデータを検索して、一致した数値があるアドレスを特定する方法です。※ アドレス検索は一番容易な解析方法だが、2byte以下の数値だとアドレスを特定するのが難しくなる
WEBセーブエディター(PS3)でアドレスを検索する方法
-
WEBセーブエディターで、セーブファイル3つ(セーブデータとPARAM.PFDとPARAM.SFO)を読み込む
-
「アドレス検索」を開く
パラメーター(16進数または10進数)を入力する
-
検索ボタンを押す
-
結果が表示される
バイナリエディター(Stirling)でアドレスを検索する方法
※ 事前にセーブデータを復号化しておく
-
Stirlingを起動して、「ファイル > 開く」で検索するセーブデータを開く
(又はドラッグ&ドロップで開く)
-
「検索・移動 > 検索」を選択して「検索データ」の部分に16進数を入力する
(データ種類は16進データを選択)
-
次検索(または前検索)をクリックする
-
一致した数値があれば白黒反転して表示される
セーブデータによってはリトルエンディアン方式で検索しなければならない場合もあります。
セーブデータのアドレスが変動するタイプの場合は、比較よりも検索の方が有効な解析方法となります。
② 中級編 比較 前後数値/差分数値
ゲーム内のパラメーターが変化する前後のセーブデータ2つを比較して、変化する前後の数値のある箇所 または指定する差分数値からアドレスを特定する方法です。※ 前後数値の比較は、2byte以下の数値でも高い精度でアドレスを特定できる
WEBセーブエディター(PS3)で比較して前後数値を検出する方法
-
WEBセーブエディターで、比較する(変化する前の)セーブデータを読み込む (PARAM.PFDとPARAM.SFOを含む)
-
「復号データ出力」から復号化したセーブデータをダウンロードしておく
(後で比較対象として追加する時に使う) -
WEBセーブエディターで、改造する(変化した後の)セーブデータを読み込む (PARAM.PFDとPARAM.SFOを含む)
-
「その他」を開く
「セーブデータ解析 (比較)」を開く
-
「追加」の入力フォームから比較対象となるセーブデータ(復号化済み)を選択する
-
「前後数値」を開く
改造するセーブデータのパラメーター(変化した後の数値)を16進数で入力する
比較するセーブデータのパラメーター(変化する前の数値)を16進数で入力する
-
実行ボタンを押す
-
結果が表示される
-
特定したアドレスにある数値を改造する
WEBセーブエディター(PS3)で比較して差分数値を検出する方法
-
WEBセーブエディターで、比較する(変化する前の)セーブデータを読み込む (PARAM.PFDとPARAM.SFOを含む)
-
「復号データ出力」から復号化したセーブデータをダウンロードしておく
(後で比較対象として追加する時に使う) -
WEBセーブエディターで、改造する(変化した後の)セーブデータを読み込む (PARAM.PFDとPARAM.SFOを含む)
-
「その他」を開く
「セーブデータ解析 (比較)」を開く
-
「追加」の入力フォームから比較対象となるセーブデータ(復号化済み)を選択する
-
「差分数値」を開く
差分数値(変化する前の数値と変化した後の数値の差)を16進数で入力する
-
実行ボタンを押す
-
結果が表示される
-
特定したアドレスにある数値を改造する
③ 上級編 比較 相違箇所 (パラメーター/フラグ)
ゲーム内のパラメーターが変化する前後のセーブデータ2つを比較、または ゲーム内のフラグが立つ前後(イベント発生前後)のセーブデータ2つを比較して、相違箇所からパラメーターやフラグのアドレスを特定する方法です。※ 相違箇所の比較は、セーブデータの中身が大きく書き換わっている場合だとアドレスを特定するのが難しくなる
WEBセーブエディター(PS3)で比較してパラメーター/フラグの相違箇所を検出する方法
-
WEBセーブエディターで、比較する(変化する前の)セーブデータを読み込む (PARAM.PFDとPARAM.SFOを含む)
-
「復号データ出力」から復号化したセーブデータをダウンロードしておく
(後で比較対象として追加する時に使う) -
WEBセーブエディターで、改造する(変化した後の)セーブデータを読み込む (PARAM.PFDとPARAM.SFOを含む)
-
「その他」を開く
「セーブデータ解析 (比較)」を開く
-
「追加」の入力フォームから比較対象となるセーブデータ(復号化済み)を選択する
-
「相違箇所」を開く
実行ボタンを押す
-
結果が表示される
バイナリエディター(Stirling)で比較してパラメーター/フラグの相違箇所を検出する方法
※ 事前にセーブデータを復号化しておく
-
Stirlingを起動して、「ファイル > 開く」で比較する2つのセーブデータを開く
(又はドラッグ&ドロップで開く)
-
「検索・移動 > 比較」を選択して、「比較対象指定」で比較するセーブデータを選択して「OK」をクリックする
-
比較箇所一覧が表示される
※「違いはありません」と表示された場合は、セーブデータの中身は全く同じです
-
相違箇所でアドレスを特定する
(相違箇所~相違終了箇所がアドレスです)
-
比較箇所一覧で相違箇所を選択して「ジャンプ」をクリックすると、相違箇所の数値が白黒反転して表示される
相違箇所が二箇所以上ある場合は、相違箇所のアドレスの中からパラメーター/フラグのアドレスを総当たりで調べて特定します。
相違箇所が一箇所の場合はチェックサムがない可能性が高く、相違箇所が二箇所以上ある場合はチェックサムがある可能性が高いです。
パラメーター/フラグと同様にアイテムIDを解析する事も出来ます。 例えばアイテムを入手する又は捨てる前後のセーブデータを比較すれば、アイテムが記録してあるアドレスとアイテムID(数値)を特定できます。
解析したアドレスにある数値を改造する方法
-
「パラメーター書換」を開く
-
「アドレス」を入力する
-
「パラメーター」に改造したい任意の数値を16進数で入力する
※
-
実行ボタンを押す
※ 検索・比較した時に入力した数値のバイト長とは異なるバイト長の数値に改造する場合は、アドレスを変更する必要があります。 「00~FF」(1byteの数値)で検索・比較して「010000~FFFFFF」(3byteの数値)に改造する場合は、アドレスが仮に「1234」だとしたら 2byte分を差し引いて「1232」に変更しなければならない。
PS3のセーブデータは基本的にビッグエンディアンで記録されるが、 一部のリトルエンディアンで記録されているセーブデータの場合は、アドレスを変更しなくても大丈夫な可能性がある。
パッチコードを作成する方法 セーブデータ改造コード
セーブデータを解析してアドレスを特定したら、数値を書き込むパッチコードを作成できます。1バイト書き込み
「0xxxxxxx 000000yy」
xxxxxxx : アドレス
yy : 1バイトの数値
2バイト書き込み
「1xxxxxxx 0000yyyy」
xxxxxxx : アドレス
yyyy : 2バイトの数値
4バイト書き込み
「2xxxxxxx yyyyyyyy」
xxxxxxx : アドレス
yyyyyyyy : 4バイトの数値
※ 上記以外にもシリアルコードなどのパッチコードを作成する方法があります。
パッチコードの数値は必ず16進数で入力して下さい。
パッチコードの左側部分が8文字になる様にアドレスを入力して下さい。同じくパッチコードの右側部分が8文字になる様に数値を入力して下さい。 パッチコードは一行が半角8文字+半角スペース+半角8文字で構成されなければ正常に実行できません。 例えば数値を「1」と入力する場合は「0」を付け加えて「00000001」となります。
アドレスが随時(セーブする度に)変動するタイプのセーブデータだとパッチコードの作成は難しくなります。
専門用語
・バイナリエディター・Stirling
・16進法(16進数)
・アドレス(オフセット)
・パラメーター
・フラグ
・リトルエンディアン
・ビッグエンディアン
・チェックサム
バイナリエディター
バイナリエディターとは、セーブデータなどのバイナリデータ(2進数)を16進数で表示・編集するツールです。
Stirling
Stirlingとは、Windows用のバイナリエディターです。
Windows以外の場合は、Android用やMac用のバイナリエディターを使用して下さい。
ダウンロード > Stirling (Vector)
16進法(16進数)
16進法とは、0~9の10個の数字にA~Fの6個の英字を加えて16個の文字で表現した数値です。
>> 16進数変換システム
Wikipedia > 16進法
アドレス(オフセット)
アドレスとは、セーブデータに記録されている位置を16進法で表した数値です。
パラメーター
パラメーターとは、ゲーム内で扱う10進法の数値、またはバイナリデータで扱う16進法の数値です。
フラグ
フラグとは、主にゲーム内の進行状況を記録した情報です。
ビッグエンディアン
ビッグエンディアンとは、2バイト以上のデータを上位→下位の順序で1バイトづつ記録する方式です。 データの並び順はリトルエンディアンの逆になる。 PS3は基本的にビッグエンディアンで記録されている場合が多い。
リトルエンディアン
リトルエンディアンとは、2バイト以上のデータを下位→上位の順序で1バイトづつ記録する方式です。 データの並び順はビッグエンディアンの逆になる。 数値(16進法)をリトルエンディアンに変換(並び替え)してから、セーブデータを検索したり書き換える必要がある。
チェックサム
チェックサムとは、データが破損しているかを調べる誤り検知機能です。 セーブデータにチェックサムがある場合は、改造した後にチェックサムを修正しなければ、破損したセーブデータとなる。 セーブデータ改造ツールが自動修正に対応していれば問題なく改造できるが、自動修正に対応していない場合は手動で修正する必要がある。
総当たり
総当たりとは、全ての組み合わせを実際に試す方法です。
後書き セーブデータ解析
二重セーブデータレトロゲーム(主に1990年代~2000年代のカートリッジ式のゲーム)に多いのですが、セーブデータを二重に保存する場合があります。 セーブデータを一つしか保存できないと批判された「DS ドラゴンクエストIX」も二重セーブデータです。 二重セーブデータは片方のセーブデータが破損しても、片方のセーブデータが破損してなければ 正常にセーブデータを読み込めるという特性があるので、セーブデータの安全性が高くなります。 同じセーブデータを同時に二つ保存する方式と セーブデータを交互に別々の箇所に一つずつ保存する方式があります。 二重セーブデータを解析する場合は、目的のアドレスが二重に検出されますので、基本的に小さい方のアドレスを改造します。
PS3セーブ関連システム
-
PS3セーブアカウントID書換システム ユーザー変更
-
PS3セーブアカウントID確認システム ユーザー情報
PS3セーブ関連ページ
-
PS3セーブエディターの使い方 取扱説明書
-
PS3セーブエディターの質問と回答 Q&A形式
-
PS3セーブのパッチコード検索フォーム セーブデータ改造コード
-
PS3セーブの改造対応/非対応タイトル
二重暗号化 圧縮 アドレス 変動 コピー 禁止 など
-
PS3セーブのチェックサム修正 対応タイトル
など
-
PS3セーブの16進数変換 10進法⇔16進法 簡易電卓
-
PS3セーブの関連用語 専門用語辞典
-
PS3セーブのSecure File ID games.conf
-
PS3セーブエディターの開発雑記
-
PS3セーブエディターの開発/更新履歴
-
セーブエディター掲示板 (セーブエディター.com)
┗ PS3パッチコード改造掲示板 ・ PS3セーブデータ投稿掲示板
-
外部リンク ▼
- セーブエディター.com
- PS3セーブエディター
- セーブデータの解析方法
▼ ブラウザーでプレイできるファミコン Flashマルチエミュレーター
▼ FC SFC GB GBC GBA SEGA エミュ