Analisis de .PKG con PS3PKG

Hola, he decidido abrir un hilo nuevo para el analisis del .PKG porque lo estaba posteando en el del exploit del assasin's y ya no tenia muxo que ver...

Pues eso, que he programado una aplicacion con toda la info del .PKG que se conoce para que la probeis con vuestros PKG e intenteis descubrir algo mas de los mismos para ver si podemos descomprimirlos algun dia.

Imagen

Adjuntos

probandooo.....y animo nethunter........
Nethunter escribió:Hola, he decidido abrir un hilo nuevo para el analisis del .PKG porque lo estaba posteando en el del exploit del assasin's y ya no tenia muxo que ver...

Pues eso, que he programado una aplicacion con toda la info del .PKG que se conoce para que la probeis con vuestros PKG e intenteis descubrir algo mas de los mismos para ver si podemos descomprimirlos algun dia.

Imagen


¿Lo has hecho tú?. Buen trabajo tio. Y enhorabuena. Espero que de aqui salga algo bueno.
suerte tiene buena pinta la aplicacion
Juer pedazo de trabajo si señor, esperamos sea de gran ayuda.

Un saludo
lo probare con el de los patos aber k sale XDD
Estoy algo desconectado de esto , y no es pork no lea los post ni nada pero es que no entiendo..... los PKG? para que sirve y pork tanto interes en esto???
y para que sirve esto?
muy buena Nethunter, la putada esta en los certificados [mamaaaaa]
alguien puede decir para que es esto?
Vaya una aplicacion completa si señor, ahora solo falta q alguien le sepa sacar el maximo partido.


Sweeney Todd escribió:alguien puede decir para que es esto?


En el primer post explica para q es....
Mas info: http://www.elotrolado.net/hilo_Assassin-s-Creed-Exploit-para--PKG_947281
Sweeney Todd escribió:alguien puede decir para que es esto?


Usos aprovechables de cara a la scene, en principio ninguno.
Bueno, sí, que algo para lo que antes necesitabas ente otras cosas un editor hexadecimal ahora te sale solito en el programa, pero en realidad mientras no se esencripte nada estos aportes no tienen demasiada utilidad. De todas formas, gracias a su creador por ponerle empeño.
Muy bueno, voy a probarlo :P
bueno esperemos que en un futuro no muy lejano nos sirva
Buenas Nethunter, podrías explicar un poco el significado de cada sección y como funciona el programa.

Explicar un poco en que consiste, o cual es tu teoría de lo que contiene cada sección.
no lo puedo abrir por que sera?
muchas gracias se agradecen este tipo de cosas ;)
Pregunta para nethunter:

Si se saca el campo de copyright de un pkg osea k un juego se convierte en demo y recodificas el hash sin el copyright y se lo pones lo detecta?
Nethunter, me uno a ti a ver si entre los 2 somos capaces va? ahora mismo estoy en clase pero te enviare un privado de mi msn para k me agreges y asi nos repartimos el trabajo.Un saludo
cokik escribió:muchas gracias se agradecen este tipo de cosas ;)
+1
Nethunter hace este soft...aunque valga para poco(cosa que dudo)

se valora mas que las payasadas fakeras de la peña...(menos las que se hicieron con buena intencion y no fructificaron)

dew
asias por el programita ;)
BURTON C.BELL escribió:Nethunter hace este soft...aunque valga para poco(cosa que dudo)

se valora mas que las payasadas fakeras de la peña...(menos las que se hicieron con buena intencion y no fructificaron)

dew


+1

Realmente se agradece muchisimo la contribucion, pero me interesaria saber que tipo de informacion podemos llegar a obtener con este programa que sea valida para la scene.
Exacto kafkafx, eso es lo que le pregunto.

Se agradece, independientemente si se saca algo, como si no.
Gracias por el programa, tengo un problemia cuando le doy a abrir el archivo pone esto en una ventana de error microsoft .NET Framework ( se produjo una excepcion de tipo 'System.OutOfMemoryException'


************** Depuración JIT **************
Para habilitar la depuración Just In Time (JIT), el archivo de configuración de esta
aplicación o equipo (machine.config) debe tener el
valor jitDebugging establecido en la sección system.windows.forms.
La aplicación también se debe compilar con la depuración
habilitada

Por ejemplo:





Cuando esté habilitada la depuración JIT, cualquier excepción no controlada
se enviará al depurador JIT registrado en el equipo
en lugar de controlarlo mediante el cuadro de diálogo.
Pues sacar de aki los archivos ya seria un gran paso :) y kitar el copyright tb seria otro :D
cobaltduff escribió:Gracias por el programa, tengo un problemia cuando le doy a abrir el archivo pone esto en una ventana de error microsoft .NET Framework ( se produjo una excepcion de tipo 'System.OutOfMemoryException'


************** Depuración JIT **************
Para habilitar la depuración Just In Time (JIT), el archivo de configuración de esta
aplicación o equipo (machine.config) debe tener el
valor jitDebugging establecido en la sección system.windows.forms.
La aplicación también se debe compilar con la depuración
habilitada

Por ejemplo:





Cuando esté habilitada la depuración JIT, cualquier excepción no controlada
se enviará al depurador JIT registrado en el equipo
en lugar de controlarlo mediante el cuadro de diálogo.


Bajate e instala si no lo tienes el "Microsoft .NET Framework" ...a mi el proxyserver en su momento tampoco me iba x ese motivo...espero q asi te funcione
Lo tengo instalado, el programa se inicia gracias.
muchas gracias, tiene buena pinta el programa.. jeje de primera mano sé lo k puede llegar a costar programar una buena aplicacion.. :P

un bug k he encontrado (creo) es k cuando seleccionas el .pkg si cancelas el opendialog casca.. miratelo a ver si puedes corregirlo o soy yo.. :P

x cierto.. k programa has utilizao? delphi?
Muy buen trabajo Nethunter. Enhorabuena y ánimo para todos para seguir investigando!
Saludos.
Aver q no e estao en toda la tarde xD

El programa el que pete como le a petao a uno por ahi es porq a lo mejor el pkg q uso estaba encriptado despues de acerse un pkg (como pasa con los xml.pkg de los firmwares, controlare eso y tb lo de no escojer ningun fichero q esta el programa muy beta aun xD.

En lo de q pa q sirve, de momento solo muestra lo q se del header y la info de los flags q no se en desconocido para q comparando varios pkg logremos descubrir algo mas sobre la compresion (q no es encriptacion, el pkg no esta encriptado solo comprimido). El final es conseguir acer y desacer pkg para poder meter codigos editados en la consola y ver si rulan.

Luego pego aki la descripcion del header y el codigo fuente adjunto.
los pkg no estan encriptados¿ si modificas un pkg con el editor hex luego la ps3 lo sigue cargando¿¿

Un saludo.
No puedes modificar un pkg con hexadecimal porq los datos estan comprimidos pero si puedes modificar el header (cualquier parte) y luego generar el nuevo SHA-1 y si te la coje la consola.

No vemos datos legibles porq estan comprimido pero no encriptado el pkg, lo unico q se encripta es el fichero de dentro del pkg antes de ser empaquetado. (q empiezan por SCE)

Formato .PKG

Hola, esto estaba empezado en el hilo del exploit pero ya se sale un poco de la tematica de ese hilo y por eso he decidido hacer este nuevo para ver si asi prospera.

En el otro hilo aparece una informacion de ps3hax con parte del header de los archivos PKG y con esa informacion he preparado esta estructura pero me falta informacion para poder crear la aplicacion asiq os pego aki la estructura para que compareis e investigueis y si quereis os paso tb el codigo fuente en C de lo que yebo hecho (apenas nada porque he empezado hace una hora escasa con esto).

FORMATO .PKG:
-------------------



typedef struct PKG_header{
   unsigned char start[4];               // ".PKG"
   unsigned __int32 unk1;               // siempre "0x8000 0001"
   unsigned __int32 sec3_Offset;         // Section 3 offset "0xC0"
   unsigned __int32 unk2;               // ??? Valores "0x4","0x5","0x7" solamente (por ahora)
   unsigned __int32 sec2_Offset;         // Section 2 offset "0x80","0xA0"
   unsigned __int32 num_files_sec;         // Posiblemente numero de archivos en la seccion
   unsigned __int32 unk3;               // siempre "0x0"
   unsigned __int32 filesize;            // Tamaño del PKG
   unsigned __int32 unk4;               // siempre "0x0"
   unsigned __int32 data_sec_Offset;      // Seccion Datos offset
   unsigned __int32 unk5;               // siempre "0x0"
   unsigned __int32 size_data;            // tamaño de la seccion de datos
   unsigned char internal_name[48];      // nombre interno del archivo ej. ("EP0001-BLES00158_00-ASSASSINPATCH001............");
   unsigned char section1[32];            // Seccion 1
   unsigned char section2[64];            // Seccion 2
   typedef struct section3{
      unsigned __int32 sec1_unk1;         // valores "0x1"               por ahora
      unsigned __int32 sec1_unk2;         // valores "0x4"               por ahora
      unsigned __int32 sec1_unk3;         // valores "0x2" "0x3" "0x4" "0x5"   por ahora
      unsigned __int32 sec1_unk4;         // valores "0x2"               por ahora
      unsigned __int32 sec1_unk5;         // valores "0x4"               por ahora
      unsigned __int32 sec1_unk6;         // valores "0x1" "0x4" "0x5"      por ahora
      unsigned __int32 sec1_unk7;         // valores "0x3"               por ahora
      unsigned __int32 sec1_unk8;         // valores "0x4"               por ahora
      unsigned __int32 sec1_unk9;         // valores "0x0" "0x5A"            por ahora
      unsigned __int32 sec1_unk10;      // valores "0x4"               por ahora
      unsigned __int32 sec1_unk11;      // valores "0x8"               por ahora
      unsigned __int32 sec1_unk12;      // valores "0x0"               por ahora
      unsigned __int32 sec1_size_data;   // tamaño de la seccion de datos
      unsigned __int32 sec1_unk13;      // valores "0x0" "0x5"            por ahora
      unsigned __int32 sec1_unk14;      // valores "0x0" "0x4"            por ahora
      unsigned __int32 sec1_unk15;      // valores "0x0" "0x0960 0100" "0x0960 0101" "0x0960 0200" "0x1203 0110" por ahora
   } section3;
   unsigned char section4[64];            // Seccion 4 (PSP/PS1 archivos con lincencia tienen aqui los mismos datos)
   unsigned char section5[64];            // Seccion 5
   unsigned char SHA_1[20];            // SHA-1 del PKG (desde offset 0x0 hasta el final de la seccion 5)
   unsigned char EOF[12];               // Fin de archivo (reyeno de 0x0)
} PKG_header;


Fuente: http://www.ps3hax.net/showthread.php?t=2461

Codigo fuente del programa PS3PKG-v1.1: http://fuego-eterno.no-ip.org/descargas/PS3PKG_src.rar
Nethunter Creo que muchos te van a agradecer que pongas a disposición de todos el código fuente del programa...

Pero si me permites un consejo, debería de ser un poco más... privado.
No pasa na, si el codigo fuente de momento tp muestra gran cosa, una estructura de datos visualizada nada mas, de todos modos no me importa que luego otro coja ese codigo y consiga acer algo grande, si lo pongo es para eso, para que le saquen probecho, no busco fama...kita kita q luego me persiguen xD.
.ubo. está baneado por ""todos los que tiene xbox tiene amigos pleiperos y medio tontos" y después clon..."
Nethunter escribió:No pasa na, si el codigo fuente de momento tp muestra gran cosa, una estructura de datos visualizada nada mas, de todos modos no me importa que luego otro coja ese codigo y consiga acer algo grande, si lo pongo es para eso, para que le saquen probecho, no busco fama...kita kita q luego me persiguen xD.


gracias tio, que aprendan otros.

muestre lo que muestre, algo es mejor que nada.
net, no has respondido mi pregunta ^^
Sacar los archivos podremos si conseguimos el algoritmo que usa para comprimir, si es el LIV no es muy dificil, si es uno privado lo tenemos mas chungo.

Lo del copyright no va en el pkg, es porq al meter los archivos descomprimidos en la consola estos tenen permisos de usuario como los de linux o windows y la consola al acerlo por el proxy no le da permisos a nuestro usuario (mas bien no se los da a ninguno) por eso al mirarlos en info pone q no expirar nunca y q no tenen propietario y eso es lo que acen los certificados esos que manda la store, por eso stoy a ver si consigo desencriptar un certificado, pa ver que es lo que manda a la consola y asi saber por donde tirar, lo de desencriptar tene q ser facil (para uno q sepa de encriptacion porq yo de eso ni idea) porq la clave es publica, la que es privada es la de encriptar y para eso se me ocurrio caducar el certificado y al ser de proveedor desconocido los certificados nos cojeria el q pusieramos nosotros (con nuestra clave privada) al cambiar la fecha de la consola.

El desencriptar el certificado me dijo demon hades que conocia a una chica de aki del foro q maneja sobre encriptacion pero aun no se na del tema. Y ya con eso tendriamos solucionao los copyright porq solo no los tira pa atras por eso.

Por cierto, vi lo de un tal marcus o algo asi que izo un otheros que segun lei funcionaba por debajo del hypervisor pudiendo renderizar directamente en la ddr del RSX (era una demo con una pelota dando botes). A lo mejor por ahi podemos meter codigo.
se me a ocurrido una cosa, si ya se aprobado, pos decirmelo, que yo no estoy en todo.

y si descargamos un PKG desde la PS3, sin instalarlo, lo pasamos al PC de HDD (PS3) a HDD (del PC) el copyright, no se perdera, en teoria deveria servir, que luego,no identifica el nombre del usuario. no deveria dar ,error, yo tengo 2 cuentas en mi PS3 y si bajo una demo, va en las 2.
Se puede probar, pero el tema es como meter un pkg en la consola con los permisos y para eso necesitamos el certificado que se los de o poder escribir en el hdd de la consola para darselos...

Yo voy a probar a hacer sniffer de red cuando la consola conecta a la store para con el mozilla imitarla en user-agent y todo lo que envie (y si no vale en mozilla ago un programa para que envie esa info) y luego recojer todo lo que manda la store al descargar un pkg desde el ordena a ver q pasa.
Enorabuena por el programa ahora ya comprendo bien la estructura gracias a tu Programa.
Mi pregunta es:
¿El Resultante SHA-1 es en verdad el SHA-1 o es ficticio?
Me refiero si es el codigo con el que esta comprimido o aun no esta implementado del todo. Lo digo por ir retocando ese tema.

Muchas gracias por el aporte campeon.
ayer deje un post en "[Hilo oficial] Fakes e inutilidades de la Scene de PS3"
pero creo que Nethunter no entro, mi idea es "escuchar" entre la play y el store para ver lo que se mandan entre ellos, pero la conexión que usan es segura (HTTPS).mi idea es copiar el certificado que tiene $ONY en el store y con el apache suplantar la identidad, haciendo creer a la play que nuestro servidor es el store.

cuando salga de clase me pongo con el ratataaaa
uuooo, en vez de ESCUCHAR, seria LEER. yo no te puedo escuchar, pero si leer.

yo, probe lo del copy del lemmings al juego de "the dust HD" y la verdad, es que se inicio, pero despues de desaparecer el logo de PS3, me dio error (imposible iniciar la aplicacion error: (numeracion))

ami se me ocurren varias ideas.

1º conseguir crear una aplicacion que ponga un copyright que de valido todos los PKG. (una especie de ELOADER como la PSP)

2º hacer un homebrew que aga creer que la COPIA es original.

3º probar lo que habeis dicho
Nethunter y Borat

4º intentar haberiguar, que es lo que tienen la PS3 TEST para ponerselo a una PS3 normal.

5º sobre la reto de PS2, se me ocurre coger el E.E. de la PS2 y instalarselo a la PS3 de 40GB (locura total)

salu2
El SHA-1 de los pkg es el verdadero, es un SHA-1 calculado desde el offset 0x0 asta el final de la seccion 5.

Lo de escuchar la ps3 en red me parece bien, yo lo voy a intentar ahora y asi imitar la conexion de la ps3 a la store desde el pc (como se acia con mozilla) a ver si puedo sacar algo de ahi.
Nethunter gracias por la respuesta :) me pongo ya mismo con el, haber si hago reversion descomprimiendo con el.
nethunter cuando puedas nos informas si tienes algun avance. Por cierto que diferencias existen entre un pkg de psp y uno de ps3¿?
Wenas, he estao mirando muxo por san google y e visto esto:

http://www.ps3-hacks.com/forums/post-39400.html

Hay dice mas o menos, que usando el psn downloader (el programilla para descargar desde el pc las demos de la store de psp y pasarlas a la psp) ha conseguido capturar un archivo en la psp, un tal xpd que contiene la informacion que sale ahi y posiblemente la clave de compresion, mas el usuario y tal y cual.

Supongo que sera como el certificado ese que manda la store a la ps3 para decir q ese pkg es el verdadero y no uno suplantado por nosotros, por eso pienso que de ahi a lo mejor sacamos algo, lo ideal seria poder crear nosotros ese certificado puesto q no conocemos la clave privada del mismo.

Alguna idea?
Haber si un guru de los certificados se pasa por aki y nos comentao un poco sobre el tema.
mmmm...podria ser que lleven el mismo tipo de compresion las demos de psp que las de la ps3???

no se bien como funciona el sistema este de al psp...pero me imagino que se descomprimira en la propia psp......


si esto es asi a lo mejor suena la flauta y en la psp pòdemos descoprimir una demo de ps3...
58 respuestas
1, 2