PS Vitaのアップデートファイルを展開してファイル抽出 PS Vita Magic Reader by PsDev





PS3Newsで、PsDev氏がPlayStation Vitaのファームウェアアップデートファイルを展開することができるスクリプトPS Vita Magic Readerをリリースしたことを伝えていました。

PsDev氏によると、PUPファイルを展開すべく10分程度で作ったスクリプトで、現時点ではPS VitaのアップデータからMagic ASCII、PUPのバージョン、License.xmlの3つのファイルを展開して抽出できるようです。

PsDev氏自身この状態では役に立たないとしており、今後PUPやSFO/PSFのダンプ機能を追加する意向です。

使い方は以下の通りです。

    1) スクリプトテキストをMagic-reader.shというファイル名で保存する
    2) chmod +x Magic-reader.shでMagic-reader.shに実行パーミッションを与える。
    3) PS VitaのアップデートPUPファイルPSP2UPDAT.PUPをMagic-reader.shと同一ディレクトリにコピーして(場所は適当に)、ターミナルから
    ./Magic-reader.sh PSP2UPDAT.PUP
    を実行する。

PS3NEWSに掲載されているスクリプトは文字化けしているため、PsDev’s Blogにあるスクリプトを使って試してみました。ただ、そのコードも実行するとエラーを出すので調べてみると、一部日本語で言う”×(バツ)”になっているところがありましたので自分で修正して実行しました。スクリプトは下記になります。
#!/bin/bash

# PsDev 2012. this script extract the PUP magic.

#Edit from PsiColio

#Will be adding on more stuff for it to extract in time…

# File names to extract from the PUP

Extract=( “Magic” “PUP_Version” “license.xml” )

#length starting from the offset and it ending in the offsets total length

length=( 0x8 0x10 0x724B4) #how many long the file is how much to copy, for example the Magic starts at 0×0 and the length is 0×8 bytes.

#offset of the Magic, Version and License

offset=( 0x0 0x9FF 0xC00 ) #where the file dump begins in the hex.

cont=0

printf “____________________________\n”

printf ” PsDev \n”

printf ” PUP READER \n”

printf “____________________________ \n\n”

for file in “${Extract[@]}” #tells it for a file look in Extract = the the file names

do

printf “____________________________ \n”

printf ” %s\n” “${file}” #file name

printf “____________________________ \n”

printf “offset= %s\n” “${offset[$cont]}” #tells offset of file

printf “length= %s\n” “${length[$cont]}” #tells total offset length of file

printf “%s\n” “${cont}”

dd if=$1 of=$file bs=1 obs=1 skip=$((${offset[$cont]})) count=$((${length[$cont]}))

cont=$(($cont+1)) # make sure the usage is “./Magic-reader.sh PSP2UPDAT.PUP”

done

ターミナルと言っている時点でLinuxあたりで実行するのが普通ですが、そんな環境がない私はMacでやってみました。

ターミナルログではprintfで表示されるべき文字が出てきませんでしたが、
Magic (4KB)
license.xml (460KB)
PUP_Version (4KB)
の3つのファイルが生成されました。

100MB近いファイルを展開した割には出てきたのが合計500KBあまりのファイルなので確かにあまり役に立ちそうもない状態ですが、今後に期待です。

Tags: , , , ,

Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です