pre-IPL一覧

GameGaz Daily 2018.11.14

●ツイッターで、Mathieulh氏がPSPのpre-IPLの脆弱性についてPSPDevWikiに公開したことを公表していました。発見自体は2007年と10年以上前になるそうですが、今日まで公開を控えていたそうです。コプロセッサの$9レジスタを使ってメモリ内の任意のアドレスにジャンプすることができてしまう脆弱性だそうです。PSPDevWikiで公開されています。

●PSXHAXで、MODDEDWARFARE氏がハック可能なPS4でUSBドライブなどの外付けHDDを使わずネットワーク経由(リモート)でパッケージファイルをインストールすることができるRemote Package Installerを高速化したRemote PKG InstallerとPS4 Remote Senderをリリースしたことを伝えていました。

●US PlayStation.Blogで、PS4向けの『PlayerUnknown’s Battlegrounds(PUBG)』を12月7日に発売すると発表していました。価格はディスク版もダウンロード版も29.99ドル(約3400円)となっています。ダウンロード版にはサバイバルパスなるものやコインが付くSurvivor’s Digital Edition(59.99ドル)やChampion’s Digital Edition(89.99ドル)も用意されています。日本での発売についてはまだ未発表です。

[追記]
日本のPlayStation.BlogでもPS4『PUBG』を12月7日(金)に発売すると発表していました。基本的にはアメリカと同じで、本日11月14日(水)からダウンロード版の予約受付を開始しています。
ダウンロード版の商品構成は、予約受付期間限定で
・ノーマルの『チャレンジャーズ・エディション』(税込3,300円)
・プレミアムイベントパス「Survivor Pass」と「Battle Point」「G-Coin」がバンドルされる『サバイバーズ・エディション』(税込5,500円)
・『サバイバーズ・エディション』より「G-Coin」が多い『チャンピオンズ・エディション』(税込6,600円)
となっています。2018年12月7日(金)午前0時以降にプレイが可能になります。

●PlayStation.Blogで、e-Sports仕様のPS4オフィシャルライセンス商品「レボリューション プロ コントローラー2 ホワイト」を、12月13日(木)より12,000円(税抜)で発売すると発表していました。また、「レッド」「カモグレー」「チタン」「オレンジ」「グレー」「ブルー」「カモグリーン」の7色が色ごとに販売店舗別(Amazon、ゲオ、TSUTAYA、ビックカメラ、ヨドバシカメラ)に同日より数量限定で発売されます。

●GitHubで、lantus氏がMAME(Multiple Arcade Machine Emulator:マルチアーケードエミュレータ) v0.72をNintendo Switchに移植したMAME-NX Release 2.2をリリースしていました。SDL2(クロスプラットフォーム開発ライブラリSimple DirectMedia Layer 2.0)の削除や不具合修正などが変更点です。

●SNKが、SNKブランド40周年を記念したゲーム機「NEOGEO mini」に、従来よりも8タイトル多い48タイトルを収録した赤い筐体の限定版「クリスマス限定版(NEOGEO mini Christmas Limited Edition)」を近日中に予約開始すると発表していました。価格と発売日については発表されていません。NEOGEO miniは最近よく店舗で見かけるようになりましたが、イマイチ触手が伸びないので私は未購入です。
neogeomini_xmas

●ツイッターで、xyz氏がVitaのBootROMの中のセキュアカーネルにプレーンテキストが入ったという証拠のスクリーンショットを公開していました。
https://twitter.com/pomfpomfpomf3/status/1062238739538206721

●ツイッターで、xorloser氏がNES mini/SNES miniの隠しテストメニュー表示に成功したことを公表していました。


1) メニューにある、GPLなどのオープンソースライセンスが表示される“Legal Notices”を選択する
2) 矢印が出なくなるまで下にスクロールする
3) Player1コントローラーでSTART+SELECTを押し続ける
4) 次にPlayer2コントローラーでA+B+LEFTを押す
5) その状態で10秒以上ボタンを押し続ける
6) ファミコンミニ/スーファミミニがbrickする
と書かれていますが、brickするというのはどういうことでしょうか。時間がなくて試せていないのでどなたかやってみて下さい。自己責任で。FOXCONNと出てくるので実は鴻海が生産していて、生産過程でのチェック用メニューとして用意されたように見えます。

●ツイッターで、smea氏が8月にアメリカで開催された情報セキュリティイベント「Black Hat USA 2018」で発表したときの動画が公開されたことを公表していました。Windowsの仮想化システムHyper-Vについてで3DSではありませんが、smea氏はいろんなことやってるんですね。

●ツイッターで、fail0verflowチームが最近発売されたPS4 ProのNVG-001基板を搭載したCUH-72xxモデルについてAUX HAXで紹介した、任意のコードの実行などができるハックは新型でも変更されてないのでそのまま利用できることを発表していました。


PSPのTA88v3基板がハッキングできない理由

Dark-Alexのサイトに「なぜ未だにPSPのTA88v3基板はハッキングできないのでしょうか」という記事が発表されていました。

Dark-AlexはPSPハッキングの第一人者のひとりで、SONY純正PSPファームを改変したCFW(カスタムファームウェア)の開発者です。彼がいなければPSPのハッキングはここまで進んでいなかったでしょう。

Nota Why TA88v3 cannot be hacked “yet”
なぜ未だにPSPのTA88v3基板はハッキングできないのでしょうか。

This is an explanation of the security that was added in TA88v3, and which will be likely in PSP3000.
これから述べるのはTA88v3から新たに追加されたセキュリティについての説明になります。新型PSP-3000にもおそらく適用されているでしょう。

When the PSP boots, the boot code (aka pre-ipl or ipl loader) loads the ipl from either the nand or memory stick. The IPL is splitted into pieces of 0x1000 bytes.
PSPが起動する際、ブートコード(pre-IPLやIPLローダーと呼ばれることもあります)はnandメモリーやメモリースティックからIPLを読み込みます。

First 0xA0 bytes of each block is a header for the kirk hardware command 1. It contains keys, the size of the cipher data, and two hashes, one for part the header itself, and another one for the body. The 0xF60 remaining bytes are the ciphered body, which will decrypt to 0xF60 plain bytes… if the hashes, which are checked by kirk hardware itself, are OK. (Note: ciphered body can actually be less than 0xF60, in this case, remaining bytes are ignored… before TA88v3) Fir
各ブロックの最初の0xA0 バイトはkirkハードウェアコマンドのヘッダーに当たります。その中にはキーや暗号データのサイズ、2つのハッシュが含まれています。一部はヘッダーそのもので、ほかはデータ本体です。残りの0xF60バイトは暗号化された本体データで、ハッシュに問題がなければその0xF60 バイトを復号します。(注:TA88v3基板以前は暗号化データ本体は実際には0xF60以下で、残りのバイト数は無視されていました。)

The security of kirk hashes was destroyed by a timing attack, and the IPL became unprotected.
What has Sony added to fix this?
kirkハッシュのセキュリティはタイミングアタックで突破することができました。それでIPLが無防備状態になりハッキングができていました。
その対応策としてソニーは何をしたのでしょうか。

The answer can be found in 4.00+ slim ipl’s. They decreased the size of the ciphered body to 0xF40 to leave 0x20 bytes at the end of each block (at offset 0xFE0).
As stated before, these remaining bytes are ignored… in pre-ipl’s of psp’s prior to TA88v3, and in fact, they can be randomized and ipl will still boot in those psp’s. In newest pre-ipl’s, these 0x20 bytes have a meaning.
その答えはPSP-2000のシステムバージョン4.00以上のIPLにありました。SONYは暗号化データ本体のサイズを各ブロックの最後に0x20バイトを残すために0xF40まで減らしたのです。(オフセット0xFE0のデータ部分で)
TA88v3以前のpre-IPLのように残りのバイトは無視してくれれば話は早いのですが…しかも実は起動のたびに無作為抽出データで復号されているにもかかわらず実際にIPLは以前のPSPでも起動しているのです。その新しいpre-IPLの、0x20バイトにどうも秘密がありそうです。

The first 0x10 bytes is an unknown hash calculated from the decrypted block. It is deduced that is calculated from the decrypted block and not the ciphered one due to the fact that 4.01 and 4.05 have a lot of ipl blocks in common, which, when decrypted, are similar, but they are totally different in its encrypted form. In these two ipl’s, this hash is same, as seen in the picture:
最初の0x10バイトは復号化されたブロックから計算されたハッシュのようですが、内容が不明です。おそらく復号化されたブロックから計算されている、と推定できるだけでもしかすると暗号化された物ですらないのかもしれません。4.01と4.05は複合化後のIPLブロックに共通点がありますが全体的には暗号化形態に違いがあります。4.01と4.05の2つのIPLブロックは、図のようにハッシュは同じです。

4.01-4.05 IPL block HEX

4.01/4.05 IPL block HEX

The second 0x10 bytes seem also to be dependent of the decrypted body (maybe dependent of the previous 0x10 bytes too?). In the picture it can be seen that they are different in 4.01 and 4.05, but they can actually be interchanged, you can move those 0x10 bytes from the same block in 4.05 ipl to the 4.01 ipl and it will still boot; however it cannot be randomized.
次の0x10バイトは復号化されたデータ本体に依存しているような気がします。(その前の0x10バイトももしかしたら同じ?)図では4.01と4.05は別モノですが実は4.05IPLの0x10バイトを4.01の同じ部分と入れ替えをしてみても起動してしまいます。

This protection also destroys any possibility of downgrading below 4.00, as these new cpu’s won’t be able to boot previous firmwares ipl’s.
このプロテクトのために4.00以下へのダウングレードはほぼ不可能です。新しいCPUが以前のファームウェアのIPLを起動できないためです。

Summary: basically, all security of newest psp cpu’s rely on the secrecy of the calculation of those 0x20 bytes. If pre-ipl were dumped somehow, the security would go down TOTALLY.
まとめ:基本的に新しいPSPのCPUのセキュリティは今述べた0x20 バイトの計算方法の秘密がすべてです。いつかpre-IPLがダンプできればセキュリティを破ることが出来るかもしれません。

Graphic summary:
図解

PSP with OLD-NEW CPU

PSP with OLD-NEW CPU


まもすけ注:この図が一番分かりやすいです。

翻訳はまもすけテキトー翻訳ですが、いつものようにごめんなさいする以前にちょっとしんどかったです。途中で何度もやめようと思いました。
なぜかというと、言語明瞭意味不明だからです。
内容が理解できません。
こいつはこんなこと普段からやってるのかと思うと頭が下がる以前にお友達にはなれないだろうなと考えてしまいました。
たぶんDark-Alexクンとは日常会話がきっと成り立たないことでしょう。

まあ、冗談はさておき、この記事を読んでふと思いだしたのが、PSPのファームウェアは3.95から4.00になった時の、さほど変化ないのになんでメジャーバージョンアップなんだろう?という疑問でした。

SONYのHPによると

PSPシステムソフトウェア バージョン4.00で更新された主な機能[2008.06.18]
* インターネット検索を追加しました。入力したキーワードをインターネットで検索できます。
* 操作パネルに[再生速度(+)]/[再生速度(−)]を追加しました。メモリースティック デュオ?に保存された動画を再生するとき、再生速度を変更できます。
* ワンセグ放送を録画した番組を再生するとき 、 字幕が表示できるようになりました。
* 字幕に対応していない番組を再生しているときは、操作できません。

大した変更がないように書いてあります。

が、実は中でSONYは虎視眈々とセキュリティ向上に努めていたのですね。だからメジャーバージョンアップだったんです。

ということは、次期ファームは5.00という噂がありますのでさらにセキュリティを強化している可能性もあります。
まもなく発売されるPSP-3000はもしかするとPS3同様鉄壁のセキュリティに格上げ?