PsVita Magic Reader 1.1 by PsDev

Il famoso sviluppatore PsDev, noto per il suo lavoro su programmi come Ps3 Tools Gui Edition, ha rilasciato un semplice ma efficace script, che aiuterà gli sviluppatori della scena PSvita a decriptare i file di aggiornamento (.PUP) mostrando loro le informazioni di base, come  i file di licenza.

Lo script è meglio conosciuto come “PS Vita Magic Reader“. 

Come al solito sconsigliamo l’uso di questo programma ai meno esperti.

Vi lascio alle dichiarazioni di PsDev:

A while back as a test I made Magic Reader v1 that extracted the Magic (SCEUF), the FW version and license.xml out of the Vita PUP. Well I just added a extraction for the whole Vita Header of PUP.

 

This script extracts the following:
[*]Magic(SCEUF)
[*]PUP Version
[*]License
[*]Package Version
[*]Image Version
[*]File Count
[*]Header length
[*]Package length
[*]A Unknown bit of values 0×50 in length
[*]FileTable
[*]HashTable
[*]HeaderHashAlso later I’ll add a FileTable extractor. which is determined by the FileCount.

This is a linux script and will run in any linux environment.

SCRIPT:#!/bin/bash
# PsDev 2012. this script extract the PUP magic.
#Edit from PsiColio lv1.self extractrion
#just extracts the header info from a vita pup, good for comparison kinda useless atm and most likely always.# File names to extract from the PUP
Extract=( “Magic” “PUPVersion” “License.xml” “PackageVersion” “ImageVersion” “FileCount” “HeaderLength” “PakageLength” “UNKNOWN” “FileTable” “HashTable” “HeaderHash” )#length starting from the offset and it ending in the offsets total length
length=( 0×8 0×10 0x724B4 0×8 0×8 0×8 0×8 0×8 0×50 0×20 0×40 0×20) #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=( 0×0 0x9FF 0xC00 0×8 0×10 0×18 0×20 0×28 0×30 0×80 0×100 0×130 ) #where the file dump begins in the hex.

cont=0

printf “____________________________n”
printf ” PsDev n”
printf ” Magic Reader n”
printf “____________________________ nn”

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

do

printf “____________________________ n”

printf ” %sn” “${file}” #file name

printf “____________________________ n”

printf “offset= %sn” “${offset[$cont]}” #tells offset of file
printf “length= %sn” “${length[$cont]}” #tells total offset length of file
printf “%sn” “${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

How to:

Make a new file named “Magic-reader.sh”
Run “chmod +x Magic-reader.sh” to give to execution permissions
Now in terminal run it. “./Magic-reader.sh PSP2UPDAT.PUP” It will output the three files in the folder/location the scripts located in.

Example out of the old Terminal LOG in v1, not updated there is a lot more files:

./Magic-reader.sh PSP2UPDAT.PUP
____________________________
PsDev
PUP READER
________________________________________________________
Magic
____________________________
offset= 0×0
length= 0×8
0
8+0 records in
8+0 records out
8 bytes (8 B) copied, 0.0153084 s, 0.5 kB/s
____________________________
PUP_Version
____________________________
offset= 0x9FF
length= 0×10
1
16+0 records in
16+0 records out
16 bytes (16 B) copied, 0.0528894 s, 0.3 kB/s
____________________________
license.xml
____________________________
offset= 0xC00
length= 0x724B4
2

 

-PSDev

 

Per tutti coloro che vogliono più informazioni vi rimandiamo al Vita Dev Wiki—> LINK

 Enjoy!

(Visited 38 times, 1 visits today)

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *