WebGP

WEB SAVE EDITOR
WEBセーブエディター

Web PS3セーブエディター簡易改造 チェックサム簡易回避

目次
簡易改造方法
数値入替
加算減算
同数加算
数値入替パッチコード (改造コード)
加算書込パッチコード (改造コード)
補足
簡易改造対応タイトル (チェックサム修正方法不明)
外部ツール (チェックサム修正ツール)

前書き

簡易改造とは、チェックサムがあるセーブデータで、 1byteから4byteの数値同士を入れ替えたり、任意のアドレスにある数値に加算した数値と同じ数値を他のアドレスにある数値から減算したり、任意のアドレスとチェックサムのアドレスにある数値に同じ数値を加算するなどして、 チェックサムを修正しないでも破損したセーブデータにならない様に、チェックサムの整合性を保ったまま改造する方法です。 チェックサムの修正方法が解明されていなくても、計算方法が加算、減算、XORの場合であれば簡易改造が可能です。 レトロゲームであればチェックサムの計算方法は加算である場合が多いので、多くのゲームで簡易改造が可能です。 最近のゲーム(概ね2000年以降)はCRC32やMD5やSHA-1など複雑な計算方法が多いので、簡易改造できるゲームは少ないです。
簡易改造はチェックサムを簡易的に回避して改造する方法であり、簡単に改造できる方法ではありませんので、ある程度の専門知識や解析情報が必要になります。
簡易改造をするにはセーブデータの解析情報が必要になります。 どのアドレスに何の役割があるのかを把握していなければ改造できません。 誤った方法で数値入替や加算減算や同数加算すると、チェックサムに関係なく破損したセーブデータになりますので注意して下さい。 一番簡単に解析する方法として、アドレス検索でパラメーターが記録されているアドレスを特定する事が出来ます。 解析情報が無くて自分で解析できない場合は、簡易改造に対応したパッチコードで改造して下さい。

簡易改造数値入替

チェックサム計算の読込幅が1バイト単位
チェックサムの計算範囲内であれば、アドレスは「0x00⇔0x01」「0x00⇔0x02」「0x00~0x02⇔0x03~0x05」など、どのアドレスにある数値を入れ替えても問題はない。

チェックサム計算の読込幅が2バイト単位
1バイトづつ入れ替える場合、アドレスは「0x00⇔0x02」「0x01⇔0x03」など、偶数アドレスにある数値同士または奇数アドレスにある数値同士を入れ替えなければならない。
2バイトづつ入れ替える場合、アドレスは「0x00~0x01⇔0x02~0x03」など、偶数アドレス~奇数アドレスにある2バイトの数値同士を入れ替えなければならない。
チェックサムの計算範囲の開始アドレスが偶数の場合の改造方法なので、開始アドレスが奇数の場合は説明とは逆になる。

チェックサム計算の読込幅が4バイト単位
1バイトづつ入れ替える場合、アドレスは「0x00⇔0x04」「0x01⇔0x05」「0x02⇔0x06」「0x03⇔0x07」など、 4の倍数になるアドレスにある数値同士 または4の倍数になるアドレス+1にある数値同士 または4の倍数になるアドレス+2にある数値同士 または4の倍数になるアドレス+3にある数値同士を入れ替えなければならない。
2バイトづつ入れ替える場合、アドレスは「0x00~0x01⇔0x04~0x05」「0x02~0x03⇔0x06~0x07」など、 4の倍数になるアドレスから2バイトの数値同士、または4の倍数にならない偶数アドレスから2バイトの数値同士を入れ替えなければならない。
4バイトづつ入れ替える場合、アドレスは「0x00~0x03⇔0x04~0x07」など、4の倍数のアドレスから4バイトの数値同士を入れ替えなければならない。
チェックサムの計算範囲の開始アドレスが4の倍数になる場合の改造方法なので、開始アドレスが4の倍数以外になる場合は入れ替えるアドレスは説明とは異なる。
チェックサムの計算範囲内の数値と計算範囲外の数値を入れ替えるとチェックサムエラーになる。
チェックサムの計算方法が加算の場合を前提に説明してありますが、基本的には減算の場合でも可能です。 XORの場合はチェックサムの計算方法のバイト長と入れ替える数値のバイト長を同じサイズする。

簡易改造 加算減算

任意のアドレス(A)にある1バイトの数値に加算した数値と同じ数値を、他の任意のアドレス(B)にある1バイトの数値から減算して±0にする改造方法です。

チェックサム計算の読込幅が1バイト単位
チェックサムの計算範囲内であれば、アドレスは「0x00にある数値を加算、0x01にある減算」や「0x00にある数値を減算、0x02にある数値を加算」など、どのアドレスの数値を加算・減算しても問題はない。

チェックサム計算の読込幅が2バイト単位
偶数アドレスにある数値を加算した場合は、偶数アドレスにある数値を減算する。
奇数アドレスにある数値を加算した場合は、奇数アドレスにある数値を減算する。

チェックサム計算の読込幅が4バイト単位
4の倍数のアドレスにある数値を加算した場合は、4の倍数のアドレスにある数値を減算する。
4の倍数のアドレス+1にある数値を加算した場合は、4の倍数のアドレス+1にある数値を減算する。
4の倍数のアドレス+2にある数値を加算した場合は、4の倍数のアドレス+2にある数値を減算する。
4の倍数のアドレス+3にある数値を加算した場合は、4の倍数のアドレス+3にある数値を減算する。
チェックサムの計算方法が加算か減算の場合のみ可能で、XORは非対応です。減算の場合はチェックサムのアドレスにある数値も加算または減算できます。
加算した後の数値が0xFFを超える又は減算した後の数値が0を下回る場合は、チェックサムの整合性を保てないので破損したセーブデータになる。

簡易改造同数加算

チェックサムのアドレスにある1バイトの数値と 改造したいアドレスにある1バイトの数値に同じ数値を加算して改造する方法です。

チェックサムのサイズが2バイトで、改造する数値が偶数アドレスの場合は、チェックサムの偶数アドレスにある数値へ加算する。改造する数値が奇数アドレスの場合は、チェックサムの奇数アドレスにある数値へ加算する。

チェックサムのサイズが4バイトで、改造する数値が4の倍数のアドレスの場合は、チェックサムのアドレスの1バイト目にある数値へ加算する。改造する数値が4の倍数のアドレス+1の場合は、チェックサムのアドレスの2バイト目にある数値へ加算する。改造する数値が4の倍数のアドレス+3の場合は、チェックサムのアドレスの4バイト目にある数値へ加算する。
同数加算での簡易改造は、チェックサムのアドレスを特定できている場合のみ可能です。
チェックサムの計算方法が加算の場合のみ可能で、減算やXORなどは非対応です。
加算した後の数値が0xFFを超える場合は、チェックサムの整合性を保てないので破損したセーブデータになる。
チェックサムのアドレスまたはチェックサムの計算範囲の開始アドレスの位置によっては、説明とは異なるアドレスに場合がある。

簡易改造数値入替パッチコード 改造コード作成 (Cコード)

※ 予定

簡易改造加算書込パッチコード 改造コード作成 (7コード)

※ 予定

簡易改造対応タイトル チェックサム修正方法不明タイトルから抜粋

憂世ノ志士
キングダムハーツ HD 1.5 リミックス (Re:チェイン・オブ・メモリーズ) (参考1) (参考2)
スーパーロボット大戦OGサーガ 魔装機神III PRIDE OF JUSTICE (参考 5コード化 7コード化)
スーパーロボット大戦OGサーガ 魔装機神F COFFIN OF THE END
戦国無双4-II

外部ツール チェックサム修正ツール

キングダムハーツII (キングダムハーツ HD 2.5 リミックス)
戦国無双4

後書き

上級者の方にとっては当たり前の説明しかしていませんが、初心者の方にとっては実用的な情報もあると思い説明しました。 但しここで説明している内容は理論上の事で、実践や検証などは乏しいので、 説明に誤りがある場合は報告してくださると助かります。宜しくお願い致します。

PS3セーブ関連システム

PS3セーブ関連ページ


スクロール Page Scroll to Top
FCエミュレータ ウェブFCエミュレーター
ブラウザーでプレイできるファミコン
SFCエミュレータ Flashマルチエミュレーター
FC SFC GB GBC GBA SEGA エミュ
Emulator(エミュレータ) Information Center © WebGamePlatform.com


QR