Amazon最近のリリースは大体把握してるけどブログにまで手が回らない。時間が取れたらなんか書きます。kood音楽鑑賞や美少女ゲームやゲーム機に関する情報収集が趣味の人。リリースしていました。ここ最近いろいろあって記事を書いてませんでしたが、流石にこのリリースは見過ごせないので記事にします。記事執筆時点では一人でも多くの方の協力(mincgでダンプしたデータをSKGleba氏に提供)が必要です。記事執筆時点でVitaの最新FWは3.73であり、3.73でもハックであるHENkakuを使用する事は可能です。HENkakuは電源を切るまで有効な一時的なハックであり、電源を入れた時点でHENkakuが有効になるEnsoは3.60/3.65でのみ使用可能です。3.67以上のVitaの場合、Ensoを使用したいならダウングレードを行う必要があります。ダウングレードはmodoruというHomebrewで実現可能です。(ここでEnsoを挙げているのは、ダウングレードする目的として一番分かりやすい例であるためです。firmwareが存在します。これはハードコードされておりかつ本体毎に固有の2つ鍵で暗号化されたバージョン情報です。仮にそれが3.67の場合、そのVitaではそこがダウングレードの限界です。firmwareを変更出来るHomebrew/ツールの登場です。exploitの実装もとい実現です。exploitの概要はwikiに掲載されています。https://wiki.henkaku.xyz/vita/Vulnerabilities#moth_exploitminfwを含むデータはVitaの本体毎に固有の情報があるIdStorageに存在します。それの復号に本体毎に固有の2つの鍵(仮にAとB)が使用されます。second_loaderはまずIdStorageから取得したデータ(blob)をAで復号し、RSAで検証します。その後、Bで復号される事でminfwのバージョン値が出てきます。バージョン値は4バイトの値で、例えば3.60なら03600000、3.65なら03650000となります。いずれの復号処理においてもパディングのチェックはしていないらしく、それが原因となり別の本体のminfwを含むデータ(別の本体のAで復号された状態)を目的の本体のAで復号出来るように暗号化してフラッシュする事で、データの移植が可能になるのだそうです。別の本体のデータですから、当然ながら目的の本体のBでは復号出来ず、復号しようとすると滅茶苦茶な値が出てきます。稀に「その本体の元々のminfwよりも下がってしまう」という事も起こり得ます。(だから表現としては実装よりも実現の方が良いのかなと...)mincgはHomeberwとPCのツールに分かれます。Homebrewはダンプとフラッシュに使用します。ツールはダンプの検証とフラッシュ用データの作成に使用します。ダンプの検証は、別の本体のダンプを自身のAで復号出来るよう暗号化してAとBで復号した時に出てくる滅茶苦茶な値の検証です。ツールの検証で狙うバージョン値は00996000~03650000(0.996~3.65)です。Vitaのブートローダーは起動時に本体毎に固有のハードコードされたデータを復号してハンドシェイクに用いる鍵を設定するそうですが、minfwが0.996未満の場合には通常とは異なる値が設定されてしまい、それが原因でVitaが起動しなくなるそうです。最低値が0.996なのはそれが理由です。https://twitter.com/skgleba/status/1191826801535979520(Darthsternie氏のVitaが犠牲となりこの問題が発覚した。Darthsternie氏に感謝)3.65が最大値なのはEnsoを考慮してです。出てくる滅茶苦茶な値は4バイトなので範囲は00000000~FFFFFFFFです。そこから00996000~03650000を狙うわけなので、別の本体のダンプが多ければ多いほどヒットする確率は高くなります。確率を上げるためにも一人でも多くの方のダンプ提供が必要です。提供しても良いという方はダンプ後にSKGleba氏にメールで送ってください。(skgleba@gmail.com)本体のモデルやminfwに関わらず、全てのVitaのダンプが役に立ちます。作業を行ってください。何が起きても私や開発者は責任を負いません。元のminfwが3.61以上の場合、下げたとしても、3.60未満にはダウングレードしないでください。これは、FWの動作に関わるハードウェアの変更が行われている事があるためです。readmeにはそう書かれています。これは1000/1100と2000とTVのモデル間の変更だけはありません。同じモデルでのハードウェアのマイナーチェンジも含んだ話です。(3.60以上が良いのは、おそらく3.60リリース以降はそういう変更が確認されてないから......?)元のminfwが3.60以下の場合、下げたとしても、元のminfw未満にはダウングレードしないでください。mincgでminfwを下げる意味があるのはminfwが3.61以上の場合のみです。3.74以上がリリースされた場合、アップデートしないでください。exploitが対策される可能性があります。(HENkaku)mincg.vpkmincg-master.zipPCmaster.zipは最新のソースコードです。ツールのファイルはソースコードと一緒にアップされています。以下に書く手順はWindows環境向けです。DLし、VitaShellでインストールするmincgを起動する×ボタンを押してSMI(minfwの情報を含むデータ)をダンプする(ダンプは一瞬で終わる。10秒後にmincgは自動で閉じる。00.9960.00"と表示される。3.70以下の場合はv1.0でも良い)という事で、まだまだ提供されている数が少ないので確率は低いですが、minfwを下げる事が可能になりました。荒業ではあると思いますが、これはすごい事です。Vitaシーンの開発者に感謝!時間が取れたら他にも記事を書きたいとは思っていますが、まだ少し厳しい感じです。22:04ロウアーFW見つかってよかったですね!おめでとうございます。私は残念ながら見つかりませんでした(笑)なので、ダンプだけ送ってまた様子を見ようと思っています。詳しい解説ありがとうございました。04:20追記失礼します。先ほどダンプファイルの送信に返信をもらえまして、だいたい3/256の確率なので、ラッキーが出るまで頑張って!という趣旨の内容でした(笑)毎日サンプルはアップロードしてるから、そのうち安定すると思うということも仰ってました。参考になればと思ってシェアさせてもらいました。03:15解説記事ありがとうございます。管理人さんは、実際に改変したSMIをフラッシュしたり初期FWより下に下げてみたりしましたか?自分は、初期FW3.30のPSTVに"00.A6B7.E2"のSMIをフラッシュして、1つ下のFW3.18へのダウングレードを試みたのですが「このFWはこのシステムには適用できない」旨のエラーが出てダメでした。1つ下くらいなら行けると思ったのですがTVが特殊なんですかね。15:30>>aさん私は手順の確認のためにSMIのフラッシュまでしか試してませんでした。minfw3.67以上のVitaを持っていませんし、なによりDiscordで開発者の皆さんがダウングレード出来る前提で話を進めていたので、出来るんだろうなあと...私も元々のminfwが3.30のTVで先程試しましたが、同様のエラーが発生しました。Githubにこの件のissueが投稿されていましたが、readmeにある以下の文と共に閉じられていました。私はこれを単に1000/1100と2000とTVのモデル間の違いを指していて3.60未満がダメなのはHENkaku関連の事だろうとしか思っていなかったのですが、どうやらこの文は同じモデルでも注意しろ的な意味を含んでいるっぽいです。3.60と書かれているのは「Vitaのハックが活発になったのは3.60からで、その時から生産終了までFWに関連するハードウェアの変更は確認されてないけど、3.60リリースより前は知らん」という事なのだと思います。issueが閉じられたのを見るに、SKGleba氏は3.60未満へのダウングレードはサポートしないつもりなのでしょうね。元のデータに戻したい場合はSMI_e2のフラッシュでOKだと思います。20:35>>管理人さんわざわざ検証して頂きスミマセン。今そのIssue見ましたがまったく同じ状況ですね。その方Vita2000の方はブリックさせてしまったようで...自分は多分ブリックまではしないだろうと思いながら試してみたのですが、軽率だったかも知れません。90%以上」のコメントを規制中です。コメントを投稿する際は日本語でお願いします。※確認ボタンを押すと投稿確認フォームに移ります。投稿確認フォームの送信ボタンを押してください。※確認フォームにある「メールアドレス」に入力された内容は管理人のみ確認可能です。※確認フォームにある「タイトル」「パスワード」は当ブログでは使用していません。※確認フォームにある「URL」は名前のリンクとして機能します。※確認フォームには非公開コメントのチェック項目がありますが、非公開コメントは受け付けていません。※メールフォームより連絡頂ければメールにてお返事致します。FC2ブログのテンプレート。