Vita 偽ライセンスを作成してゲームのDRM保護を回避する事が可能な NoNpDrm v1.0 がリリース

・2019/03/22
使い方の記事を改めて書いたので、今からNoNpDrmを試そうと思っている方はそちらの記事をご確認ください。

[PSVITA] ゲーム/DLC/テーマのDRMを回避する NoNpDrm の使い方 - 2019/03/22


GitHubで、TheFloW‏氏がHENkaku環境のVitaでゲームの偽ライセンスを作成してDRM保護を回避する事が可能な
HENkaku向けプラグイン NoNpDrm v1.0 をリリースしていました。先週の予告通り早速リリースされました。

DRM保護の回避、それはつまり他人とゲームを共有可能である事を意味します。
readmeに"Sharing"と書いてある所からそれは分かると思います。ただ、やはりそれを推奨するのはよろしくないというかなんというか…
私としてはそういう思いなので、あくまでも個人使用の範疇でNoNpDrmが使われる事を思って記事を書きます。
決して海賊行為の助長を目的としているわけではありません。

では、私なりにNoNpDrmの使用方法を紹介する記事を書きたいと思います。



(訳)
法的放棄声明
・自らがライセンスを保有するコンテンツをアーカイブ/保存する以外の目的で
 DRM保護やコピープロテクトの施されたコンテンツの配布、また、それら保護やプロテクトを回避する事は違法です。
・本ソフトウェアでは個人利用のみを想定しています。
・本ソフトウェアの開発者は本ソフトウェアを利用するにあたっては一切の責任を負いません。
by TheFloW 


●NoNpDrmの特徴
・PS Vitaのコンテンツのライセンスファイルとして使える偽ライセンスを作成可能(=DRM保護回避)
・PSプラスのフリープレイやその他の事柄で存在する"残り時間"を回避する事が可能
・一部の体験版を製品版として扱えるように
・作成した偽ライセンスを使う事で他のPSNアカウントの環境下でもそのゲームを起動可能
・偽ライセンスを使用したゲームは要求がFW3.60以下であれば通常のゲームと同じように動作し、アップデートの適用も可能
・偽ライセンスを使用したゲームは通常のゲームと同じようにVitaminやMaiDumpToolを使ってダンプ可能(=PFSの復号化が可能)
・機器認証を解除したPS Vitaで、過去に購入したインストールされたままのゲームをプレイする事が可能(偽ライセンスが必要)

>・一部の体験版を製品版として扱えるように
こいつはおそらくダンプアプリであるVitaminの機能と同じなのではないかと思います。
例えばマ〇〇ラとかテ〇〇アで使えるんじゃないかと。試してないからどうなるかは知らない。


●NoNpDrmでは出来ない事
・ゲームデータのモディファイ(MOD,改変)
・PFSが復号化済のゲーム(VitaminやMaiDumpToolでダンプした物)の偽ライセンス作成
・有効な正規ライセンスファイルや偽ライセンスが無いゲームの偽ライセンス作成及び起動
・PSPのゲームやPS1のゲームのDRM保護回避
・要求されるFWが3.61以上のゲームのDRM保護回避

>・ゲームデータのモディファイ(MOD,改変)
これが出来ない理由としてはPFSと呼ばれる暗号化がゲームデータに施されており、
それがゲームプレイ時にのみ復号化される物のためこういう自体が起こる、とそう私は認識しています。
ただこれで困るかと言われると困りはしないかと。特徴でも挙げたようにNoNpDrmの偽ライセンスで動作するゲームはダンプ可能です。
ダンプアプリではPFS復号化済の物がダンプ可能なため、もちろんダンプして動作するタイトルに限りますが、
ダンプアプリを利用する事でゲームデータの改変は可能だという事です。


●不明な点
・ゲームを対象にしたプラグインの動作

ダンプをしなくても動作する事がありますが、起動時にエラーが出る事もあるため。
多分プラグインとゲームの組み合わせで変わる。これに限ってはエラー出たらダンプするしかないかと。




●必要な物
・PS Vita / PS Vita TV - FW3.60 HENkaku導入済み
・正規ライセンスを持っているゲーム(= ゲームカード所持 or PSNからダウンロードした物)
・nonpdrm.skprx
・PC(ゲームデータや偽ランセンスを他の環境にコピーするために。)(ただ単に自分のメモカ上で偽ライセンスで動作させたい場合は不要。)
・別のVita/別のメモカ(ただ単に自分のメモカ上で偽ライセンスで動作させたい場合は不要。)

同じメモカでアカウントを切り替えている人も偽ライセンスを正規ライセンスと入れ替えるだけで良いのでPCは必要無いかもしれません。

●導入方法
nonpdrm.skprxをダウンロードし、ux0:tai/ にコピーし、config.txtの*KERNEL行にパスを書き足してリロード。
*KERNEL
ux0:tai/nonpdrm.skprx
※ux0にtaiフォルダが無い場合はur0:tai/を使う

●偽ライセンスの作成方法
プラグインを有効にしてゲームを起動すれば以下の場所にrif形式の偽ライセンスが作成されます。
ux0:nonpdrm/license/app/タイトルID/
ux0:nonpdrm/license/addcont/タイトルID/DLC_FOLDER/
※ライセンスのファイル名は全て「6488b73b912a753a492e2714e9b38bc7.rif」になる模様

めちゃくちゃお手軽ですね。
後者のaddcontフォルダ内に作成される偽ライセンスは追加コンテンツが存在する場合にのみ作成される追加コンテンツの偽ライセンスです。
偽ライセンスが作成されない場合はプラグインが有効になっていない可能性があるので、
config.txtを見直してからVitaを再起動してください。再起動でconfig.txtが強制的にリロードされます。


●DL版のゲームを偽ライセンスで動作させる方法
同じメモリースティックでアカウントを切り替えている場合
(自分のアカウントでフリープレイの残り時間回避や、ただ単に偽ライセンスで動作させたい場合もこれで)
偽のライセンスを"ux0:license/app/タイトルID/" と "ux0:app/タイトルID/sce_sys/package/" にコピー。
"ux0:app/タイトルID/sce_sys/package/work.bin" を念のためバックアップしておき、packageフォルダに入れた偽ライセンスをwork.binにリネーム。
同じメモリースティックの場合はそのまま"ux0:app/タイトルID/"が参照されるのでゲームデータをどこかに移動するような事はしなくてOK。

別のVita/別のアカウントでDL版ゲームを偽ライセンスで動作させる方法
まずゲームデータである"ux0:app/タイトルID/"をPCにコピーしておき、偽ライセンスもPCにコピーしておく。
そして、ゲームデータを別のVitaの"ux0:app/タイトルID/"にコピーし、偽のライセンスファイルを"ux0:license/app/タイトルID/" にコピー。
次に、"ux0:app/タイトルID/sce_sys/package/work.bin"を削除して、"ux0:app/タイトルID/sce_sys/package/"に偽のライセンスファイルをコピーし、
それをwork.binにリネーム。最後にVitaShellのホームで△ボタンを押し、"Refresh livearea"を実行すればインストール完了となり、Vitaのホームにバブルが現れる。
バブルが現れない場合はVitaを再起動してから"Refresh livearea"を実行する。
Refresh livearea機能はwork.binを見ているようなので、どうしてもインストール出来ない場合は偽ライセンスに問題がある可能性あり。

work.binはライセンスファイルと合わせて参照されるファイルで、ライセンスファイルと同様の働きをするファイルのようです。
DL版の本来のwork.binはアカウントと関連付けされているみたいで、アカウントIDの情報が含まれているそうです。
ただ、偽ライセンスはそういった情報が含まれていないそうで、licenseフォルダに入れた偽ライセンスと合わなくなるため、
work.binを偽ライセンスで置き換える必要があるとの事。


●ゲームカードのゲームを偽ライセンスで動作させる方法
(ゲームデータをメモカに入れて偽ライセンスを使う事でゲームカードレスなゲームプレイが可能)
ゲームデータである"gro0:app/タイトルID/"と偽ライセンスをPCにコピーし、メモカや別のVitaの"ux0:app/タイトルID/"にゲームデータをコピーし、
偽ライセンスを"ux0:license/app/タイトルID/にコピー。"ux0:app/タイトルID/sce_sys/package/"に偽ライセンスをコピーし、それをwork.binにリネーム。
最後にVitaShellのホームで△ボタンを押し、"Refresh livearea"を実行すればインストール完了となり、Vitaのホームにバブルが現れる。
バブルが現れない場合はVitaを再起動してから"Refresh livearea"を実行する。
Refresh livearea機能はwork.binを見ているようなので、どうしてもインストール出来ない場合は偽ライセンスに問題がある可能性あり。

ただ単に自分のメモカでゲームカードレスなプレイがしたい場合はPC通さずにVitaShell上だけのコピー操作リネーム操作で作業を終える事も可能。
VitaShellの設定でUSB device設定を"Game Card"にすればPCと接続した際に直接ゲームカードが参照されるようで、そちらは高速なコピーが望めるとの事。
ただしVitaTVではそもそもPCとUSB接続が出来ないので、この方法は通常のVitaでのみ行う事が可能。


●追加コンテンツ(DLC)を偽ライセンスで動作させる方法
追加コンテンツデータである"ux0:addcont/タイトルID/DLC ID/" もしくは "grw0:addcont/タイトルID/DLC ID/"をPCにコピーし、
追加コンテンツの偽ライセンスもPCにコピー。別のメモカや別のVitaへ追加コンテンツは"ux0:addcont/タイトルID/DLC ID/"となるようにコピーし、
偽ライセンスは"ux0:license/addcont/タイトルID/DLC ID/" にコピー。
※DLC IDはDLC IDというフォルダ名ではなく、各DLCのIDです。
※同じメモカで同じアカウントの場合は"ux0:license/addcont/タイトルID/DLC ID/"のライセンスを入れ替えるだけでOK

●ゲームの更新データについて
"ux0:patch/タイトルID/" もしくは "grw0:patch/タイトルID" をPCにコピーして別のVitaの同じ場所に コピーする事で共有が可能。
ただ、NoNpDrmの偽ライセンスを使ったゲームはPSNから更新データをダウンロードしてアップデート可能なので、更新データのコピーやらは不要。


(訳)
トラブルシューティング
・「ゲームを起動しようとするとC1-2758-2エラーが発生する」
 →何らかのファイルが壊れている可能性があるので、全部コピーし直して再挑戦。
・「ゲームを起動しようとするとC1-6703-6エラーが発生する」
 →Devkit/Testkit (PDEL/PTEL)でそのエラーが発生する。現在その2つのデバイスはサポートしてない。
・「ゲームを起動しようとするとC0-9250-6エラーが発生する」
 →nonpdrm.skprxが有効になっていないため。config.txtを見直してから再挑戦。
・「ゲームを起動しようとするとNP-6182-7エラーが発生する」
 →再現する事が出来ていないので、何度も発生する場合はGitHubのIssuesで報告が欲しい。
・「製品版になった体験版タイトルがLiveareaでは体験版表示のまま」
 →体験版の状態でゲームをコピーしたため。
・「インストール手順をミスった。ゲームの再インストールをするには」
 →"ux0:license/app/タイトルID/"から偽ライセンスを削除してVitaShellのRefresh liveareaを使う。
by TheFloW 



まあ、こんな感じでしょうか。法的放棄声明とトラブルシューティングは簡単な訳をそのままここに。
これでゲームカードレスでゲームプレイが可能ですし、サブアカ持ってる人はそっちでもメインアカウントのゲームをプレイする事が可能です。
プラスの残り時間も回避可能です。あ、それに関して思った事が1つ。
プラグインを有効にすると残り時間の表示が消えます。ただそれはプラグインが消してるだけです。多分ですけど。
多分、偽ライセンスを正規ライセンスと入れ替えるまでは残り時間は回避されないままなんじゃないかなあと…。
ああ、それと、DL版でNoNpDrmを使う場合は正規のwork.binだけじゃなく正規ライセンスも念のためバックアップ取った方が良いかも。
そこは皆様の判断で。

では今回の記事はここまで。



2017/10/12
追記
NoNpDrmでは出来ない事としてモディファイを挙げましたが、モディファイを行う方法が公開されました。
以下の記事で書きましたので、モディファイに興味がある方の参考になれば。。。
Vita HENkaku環境でゲームデータのモディファイ(MOD)を行う方法 2017/10/08

2017.10/21
「追加コンテンツ(DLC)を偽ライセンスで動作させる方法」の解説部分を修正

[ 2017/09/16 01:29 ] カテゴリ PS Vita | タグ Vita_NoNpDrm, | コメント(-)