Como comparar 2 firmwares

Estos dias tenia mucha curiosidad para comparar el nuevo firmware oficial 3.73 respecto a la version anterior y el firmware 3.71 y me he puesto manos a la obra. Indico los pasos basicos para que podais comprobar vosotros mismos en futuros firmwares.


Descargar:

- Eboots de los firmwares en cuestion. Enlace

- Psar dumper Enlace Password: PSARDUMPER_FOR_NEW_AGE


1.- Primero poner un firmware por ejemplo el 3.72 (eboot.PBP) en la raiz y ejecutar el psardumper. Una vez acabe renombrar la carpeta F0 por 372 y luego hacer lo mismo con el otro firmware.

2.- Para descartar los que son identicos puedes generar un sfv de cada carpeta y ejecutar el sfv del otro firmware en la carpeta del 3.73 y guardar el resultado de los archivos para tener la lista de archivos diferentes.


3.- Para no trabajar a mano podeis ayudaros de algun editor de texto como ultraedit, notepad++ para poder realizar un script y comparar cada archivo y guardar el resultado.

Ejemplo:

FC 372\PSARDUMPER\common_files_table.bin 373\PSARDUMPER\common_files_table.bin /b > common_files_table.TXT
FC 372\PSARDUMPER\fat_files_table.bin 373\PSARDUMPER\fat_files_table.bin /b > fat_files_table.TXT
FC 372\PSARDUMPER\nandipl_psp1000.bin 373\PSARDUMPER\nandipl_psp1000.bin /b > nandipl_psp1000.TXT
FC 372\PSARDUMPER\nandipl_psp2000.ipl 373\PSARDUMPER\nandipl_psp2000.ipl /b > nandipl_psp2000.TXT
FC 372\PSARDUMPER\part1_nandipl_psp1000.bin 373\PSARDUMPER\part1_nandipl_psp1000.bin /b > part1_nandipl_psp1000.TXT
FC 372\PSARDUMPER\part1_nandipl_psp2000.ipl 373\PSARDUMPER\part1_nandipl_psp2000.ipl /b > part1_nandipl_psp2000.TXT
FC 372\PSARDUMPER\part2_nandipl_psp1000.bin 373\PSARDUMPER\part2_nandipl_psp1000.bin /b > part2_nandipl_psp1000.TXT
FC 372\PSARDUMPER\part2_nandipl_psp2000.ipl 373\PSARDUMPER\part2_nandipl_psp2000.ipl /b > part2_nandipl_psp2000.TXT
FC 372\PSARDUMPER\slim_files_table.bin 373\PSARDUMPER\slim_files_table.bin /b > slim_files_table.TXT
FC 372\kd\ata.prx 373\kd\ata.prx /b > ata.TXT
FC 372\kd\audio.prx 373\kd\audio.prx /b > audio.TXT
FC 372\kd\audiocodec_260.prx 373\kd\audiocodec_260.prx /b > audiocodec_260.TXT
FC 372\kd\avcodec.prx 373\kd\avcodec.prx /b > avcodec.TXT
FC 372\kd\cert_loader.prx 373\kd\cert_loader.prx /b > cert_loader.TXT
FC 372\kd\clockgen.prx 373\kd\clockgen.prx /b > clockgen.TXT
FC 372\kd\codec.prx 373\kd\codec.prx /b > codec.TXT
FC 372\kd\ctrl.prx 373\kd\ctrl.prx /b > ctrl.TXT
FC 372\kd\display.prx 373\kd\display.prx /b > display.TXT
FC 372\kd\dmacman.prx 373\kd\dmacman.prx /b > dmacman.TXT
FC 372\kd\dve.prx 373\kd\dve.prx /b > dve.TXT
FC 372\kd\exceptionman.prx 373\kd\exceptionman.prx /b > exceptionman.TXT
FC 372\kd\fatmsmod.prx 373\kd\fatmsmod.prx /b > fatmsmod.TXT
FC 372\kd\ge.prx 373\kd\ge.prx /b > ge.TXT
FC 372\kd\hibari.prx 373\kd\hibari.prx /b > hibari.TXT
FC 372\kd\hpremote.prx 373\kd\hpremote.prx /b > hpremote.TXT
FC 372\kd\http_storage.prx 373\kd\http_storage.prx /b > http_storage.TXT
FC 372\kd\idstorage.prx 373\kd\idstorage.prx /b > idstorage.TXT
FC 372\kd\ifhandle.prx 373\kd\ifhandle.prx /b > ifhandle.TXT
FC 372\kd\impose.prx 373\kd\impose.prx /b > impose.TXT
FC 372\kd\init.prx 373\kd\init.prx /b > init.TXT
FC 372\kd\interruptman.prx 373\kd\interruptman.prx /b > interruptman.TXT
FC 372\kd\iofilemgr.prx 373\kd\iofilemgr.prx /b > iofilemgr.TXT
FC 372\kd\irda.prx 373\kd\irda.prx /b > irda.TXT
FC 372\kd\isofs.prx 373\kd\isofs.prx /b > isofs.TXT
FC 372\kd\led.prx 373\kd\led.prx /b > led.TXT
FC 372\kd\lfatfs.prx 373\kd\lfatfs.prx /b > lfatfs.TXT
FC 372\kd\lflash_fatfmt.prx 373\kd\lflash_fatfmt.prx /b > lflash_fatfmt.TXT
FC 372\kd\libasfparser.prx 373\kd\libasfparser.prx /b > libasfparser.TXT
FC 372\kd\libatrac3plus.prx 373\kd\libatrac3plus.prx /b > libatrac3plus.TXT
FC 372\kd\libaudiocodec2.prx 373\kd\libaudiocodec2.prx /b > libaudiocodec2.TXT
FC 372\kd\libhttp.prx 373\kd\libhttp.prx /b > libhttp.TXT
FC 372\kd\libmp3.prx 373\kd\libmp3.prx /b > libmp3.TXT
FC 372\kd\libparse_http.prx 373\kd\libparse_http.prx /b > libparse_http.TXT
FC 372\kd\libparse_uri.prx 373\kd\libparse_uri.prx /b > libparse_uri.TXT
FC 372\kd\libssl.prx 373\kd\libssl.prx /b > libssl.TXT
FC 372\kd\loadcore.prx 373\kd\loadcore.prx /b > loadcore.TXT
FC 372\kd\loadexec.prx 373\kd\loadexec.prx /b > loadexec.TXT
FC 372\kd\loadexec_02g.prx 373\kd\loadexec_02g.prx /b > loadexec_02g.TXT
FC 372\kd\lowio.prx 373\kd\lowio.prx /b > lowio.TXT
FC 372\kd\me_wrapper.prx 373\kd\me_wrapper.prx /b > me_wrapper.TXT
FC 372\kd\mediaman.prx 373\kd\mediaman.prx /b > mediaman.TXT
FC 372\kd\mediasync.prx 373\kd\mediasync.prx /b > mediasync.TXT
FC 372\kd\modulemgr.prx 373\kd\modulemgr.prx /b > modulemgr.TXT
FC 372\kd\mpeg.prx 373\kd\mpeg.prx /b > mpeg.TXT
FC 372\kd\mpeg_vsh.prx 373\kd\mpeg_vsh.prx /b > mpeg_vsh.TXT
FC 372\kd\mpegbase_260.prx 373\kd\mpegbase_260.prx /b > mpegbase_260.TXT
FC 372\kd\mscm.prx 373\kd\mscm.prx /b > mscm.TXT
FC 372\kd\msstor.prx 373\kd\msstor.prx /b > msstor.TXT
FC 372\kd\np.prx 373\kd\np.prx /b > np.TXT
FC 372\kd\np9660.prx 373\kd\np9660.prx /b > np9660.TXT
FC 372\kd\np_auth.prx 373\kd\np_auth.prx /b > np_auth.TXT
FC 372\kd\np_core.prx 373\kd\np_core.prx /b > np_core.TXT
FC 372\kd\np_service.prx 373\kd\np_service.prx /b > np_service.TXT
FC 372\kd\power.prx 373\kd\power.prx /b > power.TXT
FC 372\kd\pspbtcnf.bin 373\kd\pspbtcnf.bin /b > pspbtcnf.TXT
FC 372\kd\pspbtcnf_02g.bin 373\kd\pspbtcnf_02g.bin /b > pspbtcnf_02g.TXT
FC 372\kd\pspnet.prx 373\kd\pspnet.prx /b > pspnet.TXT
FC 372\kd\pspnet_adhoc.prx 373\kd\pspnet_adhoc.prx /b > pspnet_adhoc.TXT
FC 372\kd\pspnet_adhoc_discover.prx 373\kd\pspnet_adhoc_discover.prx /b > pspnet_adhoc_discover.TXT
FC 372\kd\pspnet_adhoc_download.prx 373\kd\pspnet_adhoc_download.prx /b > pspnet_adhoc_download.TXT
FC 372\kd\pspnet_adhoc_matching.prx 373\kd\pspnet_adhoc_matching.prx /b > pspnet_adhoc_matching.TXT
FC 372\kd\pspnet_adhoc_transfer_int.prx 373\kd\pspnet_adhoc_transfer_int.prx /b > pspnet_adhoc_transfer_int.TXT
FC 372\kd\pspnet_adhocctl.prx 373\kd\pspnet_adhocctl.prx /b > pspnet_adhocctl.TXT
FC 372\kd\pspnet_apctl.prx 373\kd\pspnet_apctl.prx /b > pspnet_apctl.TXT
FC 372\kd\pspnet_inet.prx 373\kd\pspnet_inet.prx /b > pspnet_inet.TXT
FC 372\kd\pspnet_resolver.prx 373\kd\pspnet_resolver.prx /b > pspnet_resolver.TXT
FC 372\kd\pspnet_wispr.prx 373\kd\pspnet_wispr.prx /b > pspnet_wispr.TXT
FC 372\kd\registry.prx 373\kd\registry.prx /b > registry.TXT
FC 372\kd\rtc.prx 373\kd\rtc.prx /b > rtc.TXT
FC 372\kd\sc_sascore.prx 373\kd\sc_sascore.prx /b > sc_sascore.TXT
FC 372\kd\syscon.prx 373\kd\syscon.prx /b > syscon.TXT
FC 372\kd\sysmem.prx 373\kd\sysmem.prx /b > sysmem.TXT
FC 372\kd\systimer.prx 373\kd\systimer.prx /b > systimer.TXT
FC 372\kd\threadman.prx 373\kd\threadman.prx /b > threadman.TXT
FC 372\kd\umd9660.prx 373\kd\umd9660.prx /b > umd9660.TXT
FC 372\kd\umdcache.prx 373\kd\umdcache.prx /b > umdcache.TXT
FC 372\kd\umdman.prx 373\kd\umdman.prx /b > umdman.TXT
FC 372\kd\usb.prx 373\kd\usb.prx /b > usb.TXT
FC 372\kd\usb1seg.prx 373\kd\usb1seg.prx /b > usb1seg.TXT
FC 372\kd\usbacc.prx 373\kd\usbacc.prx /b > usbacc.TXT
FC 372\kd\usbcam.prx 373\kd\usbcam.prx /b > usbcam.TXT
FC 372\kd\usbgps.prx 373\kd\usbgps.prx /b > usbgps.TXT
FC 372\kd\usbmic.prx 373\kd\usbmic.prx /b > usbmic.TXT
FC 372\kd\usbpspcm.prx 373\kd\usbpspcm.prx /b > usbpspcm.TXT
FC 372\kd\usbstor.prx 373\kd\usbstor.prx /b > usbstor.TXT
FC 372\kd\usbstorms.prx 373\kd\usbstorms.prx /b > usbstorms.TXT
FC 372\kd\usersystemlib.prx 373\kd\usersystemlib.prx /b > usersystemlib.TXT
FC 372\kd\utility.prx 373\kd\utility.prx /b > utility.TXT
FC 372\kd\vaudio.prx 373\kd\vaudio.prx /b > vaudio.TXT
FC 372\kd\videocodec_260.prx 373\kd\videocodec_260.prx /b > videocodec_260.TXT
FC 372\kd\vshbridge.prx 373\kd\vshbridge.prx /b > vshbridge.TXT
FC 372\kd\wlan.prx 373\kd\wlan.prx /b > wlan.TXT
FC 372\kd\wlanfirm_magpie.prx 373\kd\wlanfirm_magpie.prx /b > wlanfirm_magpie.TXT
FC 372\kd\wlanfirm_voyager.prx 373\kd\wlanfirm_voyager.prx /b > wlanfirm_voyager.TXT


Una vez ejecutado se obtendran unos archivos con las diferencias entre los archivos y poder comprobar si hay cambios sin importancia o muchos mas cambios. Os dejo el resultado al comparar el firmware 3.72 con el 3.73.

Solo cambian un byte (0x02 -> 0x03): (Descargar)


Resto de cambios:

common_files_table.BIN
fat_files_table.BIN
lflash_fatfmt.PRX
loadexec.PRX
loadexec_02g.PRX
nandipl_psp1000.IPL
nandipl_psp2000.IPL
part1_nandipl_psp1000.BIN
part1_nandipl_psp2000.BIN
part2_nandipl_psp1000.BIN
part2_nandipl_psp2000.BIN
power.PRX
pspbtcnf.BIN
pspbtcnf_02g.BIN
slim_files_table.BIN

Tamaño de las diferencias: Por cada linea en el txt representa que un byte es diferente, por ejemplo en el archivo lflash_fatfmt.TXT hay 1469 bytes diferentes al comparar los 2 prx desencriptados.

Imagen

En la carpeta PSARDUMPER que se genera estan la mayoria de cambios, por ejemplo se ven diferencias notables en los IPL aunque no se si es debido solo a un tipo de cambio en la firma o encriptacion.


Para analizar los cambios importantes se tendria que usar la aplicacion prxtool con los prx pero son necesarios conocimientos en C, assembler, ingenieria inversa y procesadores mips para poder interpretarlos, sin esto por mucho ida pro que tengas no se entenderá nada.

Mas informacion sobre Prxtools

Por ahora nada mas.
Un saludo.
Un analisis curioso y trabajado te lo has currao...

Saludos...
ahora soy un poco menos inculto ^^
five stars
Justo que estoy intentando ejecutar el NEW PSAR DUMPER en una slim y me da error 80018002 que no puede cargar el libpsardumper.prx

Y estoy seguro que lo he activado en el recovery.


¿Qué me estoy perdiendo? ¿ Es por la Slim?


Gracias por adelantado
cjsosa escribió:Justo que estoy intentando ejecutar el NEW PSAR DUMPER en una slim y me da error 80018002 que no puede cargar el libpsardumper.prx

Y estoy seguro que lo he activado en el recovery.


¿Qué me estoy perdiendo? ¿ Es por la Slim?


Gracias por adelantado


Descomprí el eboot y prx en la carpeta \PSP\GAME\newpsardumper y no he tenido problema alguno. En el recovery creo que tiene que estar el kernel en 3.XX.

Readme.txt
This is a recode of psardumper for 2.XX & 3.XX kernels.

If you are ina cfw of the fat psp, be sure to put it in GAME3XX or in GAME if you have it
configured for 3.XX kernel.

Support for 3.7X decryption has also been added.

The instructions are same as for original psardumper, except that you don't need the DATA.PSAR
in the root of memory stick, but instead the EBOOT.PBP; this is to make it more noobs-friendly
and lazy-friendly.

- Team M33
Ok,

ya ta. GRACIAS Flash.


Fue que por degeneración pofesinaaa meti los prx en /seplugins y el eboot en un directorio en game.

Ahora esta funcionando OK.

PD.- Flash, ¿has conseguido que funcionen los ejemplos de red (sdk/samples/net) y del SDK en una SLIM?. Resulta que me funcionan todos los ejemplos salvo los que tienen que ver con la carga de prx y la red wifi.

PD2.- ¿En teoría este soft valdria para desencriptar cualquier EBOOT no?, me refiero a los que traen los juegos?
cjsosa escribió:PD.- Flash, ¿has conseguido que funcionen los ejemplos de red (sdk/samples/net) y del SDK en una SLIM?. Resulta que me funcionan todos los ejemplos salvo los que tienen que ver con la carga de prx y la red wifi.

PD2.- ¿En teoría este soft valdria para desencriptar cualquier EBOOT no?, me refiero a los que traen los juegos?


Tendria que hacer un curso de C para dummies, porque de lo poco que sabia no me acuerdo.

Lo del eboot pues no se, yo pensaba que era algo exclusivo de los firmwares.
6 respuestas