- 追記 2020/04/03
こちらの記事はかなり古い情報となります。
2020年4月現在、CFWの導入ハードルが下がり、CFWが導入出来ないモデルでもHENが導入可能です。
バックアップ起動にはCFWかHENを使用してください。以下の記事で導入手順を紹介しています。
[PS3] PlayStation 3 Toolset でIDPS取得/CFWインストール [OFW]
[PS3] CFWをインストール出来ないモデル向け PS3HEN の導入手順+α
今回紹介するのはOFW4.82のPS3でバックアップゲームを起動する方法です。
全モデル対応ですが、面倒なのでCFWが導入出来ない初期FW3.60以上のPS3のユーザーがメインターゲットです。
初期FW3.56以下のPS3のユーザーはPS3Xploit(Flash Memory Writer)を使用してCFWを導入してください。
CFWが導入可能なのにも関わらず今回の方法を取るのは、まあOFW環境である事を意識するなら無くは無いかな…
具体的な解説は後述するとしてまず概要を。Step1とStep2に分かれます。
●Step 1
OFWのPS3でバックアップゲームを起動する方法 - 2017/12/08
まず上記の記事で紹介した方法を取ります。やっている事としてはPS3のバックアップ機能で生成されたデータに
「OFW用として変換したバックアップゲーム」を挿入し、それをPS3で復元してやるというものです。
変換はゲームのアップデートを利用するのでアップデートが配信されていないゲームに関しては無理です。
また、変換出来たとしても全ゲームが起動出来るわけではありません。
この方法はゲームのライセンスファイル(LIC.DAT)をLIC.EDATに変換/置き換えをしています。
そこでソニーはFW4.75でバックアップ復元の際にLIC.EDATを無視するという対策を行ってきました。
しかし、この対策後もLIC.EDATはバックアップゲームを起動するために機能します。
また、PS3から別のPS3へデータを移すデータ転送ユーティリティーはLIC.EDATに関する対策が入っておらず、
FW4.70以下のPS3との二台持ち環境であればFW4.75以降のPS3でもバックアップ起動が行えるという、
言ってしまえばソニーは中途半端な対策をしてきたわけです。
Step1はバックアップデータを復元して「LIC.EDAT無しのゲームが入ってるPS3」を用意するという所までです。
FW4.70以下のPS3との2台持ちの方はデータ転送ユーティリティー使うなりStep2の方法使うなり、まあ好きにしてください。
●Step 2
OFW4.82の全モデルのPS3で使用可能なROPチェーンをまとめた PS3 Exploitation Tutorial Template
このテンプレートにはReturn-oriented programming、通称ROPと呼ばれる手法で行える事がまとまっており、
その中の1つ「Read/Write File Test」というROPチェーンは、簡単に言えばファイルのコピーを行います。
USBポートに挿したUSBメモリ等のストレージがコピー元として使用可能なので、このROPチェーンを使用して
USBメモリにあるLIC.EDATをPS3のHDDにコピーしてしまおうじゃないか、というのがStep2です。
OFWのPS3でバックアップゲームを起動する方法 - 2017/12/08
まず上記の記事で紹介した方法を取ります。やっている事としてはPS3のバックアップ機能で生成されたデータに
「OFW用として変換したバックアップゲーム」を挿入し、それをPS3で復元してやるというものです。
変換はゲームのアップデートを利用するのでアップデートが配信されていないゲームに関しては無理です。
また、変換出来たとしても全ゲームが起動出来るわけではありません。
この方法はゲームのライセンスファイル(LIC.DAT)をLIC.EDATに変換/置き換えをしています。
そこでソニーはFW4.75でバックアップ復元の際にLIC.EDATを無視するという対策を行ってきました。
しかし、この対策後もLIC.EDATはバックアップゲームを起動するために機能します。
また、PS3から別のPS3へデータを移すデータ転送ユーティリティーはLIC.EDATに関する対策が入っておらず、
FW4.70以下のPS3との二台持ち環境であればFW4.75以降のPS3でもバックアップ起動が行えるという、
言ってしまえばソニーは中途半端な対策をしてきたわけです。
Step1はバックアップデータを復元して「LIC.EDAT無しのゲームが入ってるPS3」を用意するという所までです。
FW4.70以下のPS3との2台持ちの方はデータ転送ユーティリティー使うなりStep2の方法使うなり、まあ好きにしてください。
●Step 2
OFW4.82の全モデルのPS3で使用可能なROPチェーンをまとめた PS3 Exploitation Tutorial Template
このテンプレートにはReturn-oriented programming、通称ROPと呼ばれる手法で行える事がまとまっており、
その中の1つ「Read/Write File Test」というROPチェーンは、簡単に言えばファイルのコピーを行います。
USBポートに挿したUSBメモリ等のストレージがコピー元として使用可能なので、このROPチェーンを使用して
USBメモリにあるLIC.EDATをPS3のHDDにコピーしてしまおうじゃないか、というのがStep2です。
この記事ではStep1で書いた事、つまり「バックアップデータにOFW用へと変換したゲームデータを挿入してPS3で復元」
というのはすでにやったものとして話を進めます。この記事で紹介するのはStep2で書いた事です。
●用意するもの
・PS3 / FW4.75~4.82
・PC(Windows)
・USBメモリ等のUSBストレージ(FAT32)
・ネットワーク環境
・LIC.EDAT
・PS3 Exploitation Tutorial Template v0.0.2
・MiniWeb HTTP server (miniweb.exe)
LIC.EDATはバックアップゲームをOFW用に変換した際のデータ内にあります。
※ "タイトルID/LICDIR/LIC.EDAT"
このタイトルIDも使用するので覚えておいてください。
Bから始まるタイトルIDでは無くNPから始まるタイトルIDなのが注意点です。
miniwebはローカルネットワークにHTTPサーバを構築可能なツールで、この手順ではそこにPS3からhttpで接続します。
そのためPCとPS3は同一のネットワークに接続している必要があります。
用意したUSBメモリ等のUSBストレージは事前にFAT32でフォーマットしておいてください。
●LIC.EDATをPS3のHDDに転送する手順
0、LIC.EDATのサイズ(バイト単位)を確認し、そのサイズを16進数に変換する
※おそらく65936バイトだと思いますが一応。65936バイトなら10190です
1、適当な場所に専用フォルダを作成し、miniweb.exeをコピー
※例:C:/PS3/miniweb.exe
2、手順1で作成した専用フォルダ内にhtdocsフォルダを作成
※例: C:/PS3/htdocs/
3、htdocsフォルダに PS3 Exploitation Tutorial Template のファイルをコピー
※ .../htdocs/index.html となるように
4、miniweb.exeを起動し、コンソール内にあるHostアドレスを確認する
※miniwebのコンソールは最後まで閉じない
5、USBストレージのルートにLIC.EDATをコピーする
※ "USBメモリ:/LIC.EDAT"
6、PS3を起動する
※以降PS3上での作業
7、インターネットブラウザを起動する
8、Startボタンを押して手順4で確認したアドレスを入力して接続
9、"△ボタン/ツール/ホームページ" で "現在のページを使用する" を押してOKを選択
10、△ボタンを押し、メニュー一番下の"終了"からブラウザを終了
11、ブラウザを再度起動
※ホームページとして PS3 Exploitation Tutorial Template に接続出来ていればOK
※これはPS3のメモリが出来る限りクリーンである事が推奨されるために必要な作業
12、LIC.EDATの入ったUSBストレージをPS3に接続する
※BDドライブに近い方のUSBポートに接続すると良い(そっちがusb000のため)
12、Preset Chains で Read/Write File Test を選択する
13、Sourceのテキストボックスにコピー元のファイルパスを入力
※ /dev_usb000/LIC.EDAT
14、Destinationのテキストボックスにコピー先のファイルパスを入力
※ /dev_hdd0/game/タイトルID/LICDIR/LIC.EDAT
※タイトルID部分をそのゲームのNPから始まるタイトルIDにする
15、File SizeのテキストボックスにLIC.EDATのファイルサイズを16進数で入力
※0xを付ける
※65936バイトなら0x10190
16、手順15のテキストボックス横の Set New Size ボタンを押す
17、ページ下にあるイニシャライズボタン(Initialize ROP Chain)を押す
※これによりメモリ上のオフセットをサーチする処理が始まる
18、水色の字で "SUCCESS! You Can Now Execute Your Chain!"と表示されるまで待つ
※Did Not Find All Offsets! と表示されたら一度ブラウザを終了して再度試す
※10回やって無理ならPS3を再起動した方が多分良い
19、手順18の文字が表示されたら実行ボタン(Execute Chain)を押す
20、水色の字で "Successfully Transferred Source To Destination!" と表示されたらLIC.EDAT転送成功
21、ブラウザを終了してゲームを起動してみる。
ロシア語ですが、各ゲームのアップデートの有無は以下にまとめられています。
https://docs.google.com/spreadsheets/d/1n43hG2Wo2NtXFYAV84WU_Bga2r9KnQeEpGtpCzS1suU
また、こちらもロシア語ですが、OFW用に変換したゲームの起動確認リストがあります。
https://docs.google.com/spreadsheets/d/156vq0nYKkXa0sE_KXXD_aUZqFconjpueRds_ksbppTI
以下は英語の起動確認リストです。
http://www.psdevwiki.com/ps3/CFW2OFW_Compatibility_List
PSXHAXに画像付きのチュートリアルが有ります。
変換したゲームをバックアップデータに挿入するためのTrueAncestor BACKUP Retailerの解説も画像付きで載っています。
Tutorial: Inject PS3 Backup and Transfer LIC.EDAT Using PS3Xploit
私は画像用意するのが面倒だったんで用意していませんが、あった方が分かりやすいという方はPSXHAX見てください。
OFW用に変換する手順の記事は精神的にちょっと不安定な時にざっと書いたので読み辛いと思います…
気が向いたら修正して多少は読みやすくしたいと思います…
あ、DLCの変換手順はめんどくさいので書いてません。理解こそしているものの試してない。
私は基本的には読者さんの質問に答えるスタンスですが、この方法に関してはなんか質問来ても無視するかもしれません。
だってこの方法めんどくさいし…特にバックアップゲームの変換はめんどくさいので、分からない事は多分無視します。
私に分かる事なら普通に回答するつもりです…
