Ariath escribió:uxio1973 escribió:se hace con el notepad ++
El Notepad++ no es un editor hexadecimal que yo sepa, pero podéis cogeros el HxD mismamente, que es gratuito y está en español
.
Personalmente creo que es mejor no perder el culo con el descifrado de eboots manual y esperarse a que salga alguna herramientas que lo haga automático (o parcialmente automático), porque además, tal y como dicen en el primer post, hay que tener un cierto conocimiento de la estructura de un ELF (o eso he entendido).
Salu2
Si se puede editar un archivo hex con notepad ++, y es muy recomendable, ya que puedes buscar algo concreto, con su buscador.Es un editor de texto multilenguaje.
Como dice Veritas, hay que tener algun conocimiento del tema, pero bueno lo mas malo que te puede pasar es que te de un pantallazo negro.De todas modos ese tutorial hecho en ese blog esta genial, creo que deberiamos empezar por ahi.Creo que deberiamos intentar modificar un eboot.bin sencillo. yo cre que two worlds 2, se deberia sacar.
Me referia ha este tuto.¿Alguien que sepa seguir donde se queda estancado?
Para los que querais meterle mano a los EBOOT y editarlo os dejo los pasos que yo he seguido :
Bajamos si no tenemos el programa para descargarnos el repositorio :
sudo apt-get install git-core
Bajamos el respositorio de las ps3tools:
git clone
git://git.fail0verflow.com/ps3tools.gitCreamos el direcotrio donde iran las keys:
cd $HOME
mkdir .ps3
cd .ps3
Ahi copiamos las siguientes keys: Descarga
cd ps3tools
Si no tuvieramos instaladas las librerias zlib:
sudo apt-get instal zlib1g-dev
Compilamos:
make
Ahora ya podemos explorar los EBOOT:
./readself EBOOT.bin
Nos mostrara información de las cabeceras del fichero.
./unself EBOOT.bin eboot.elf
Para desencriptarlo.
Ahora tocara hacerse con un editor Hexadecimal. Yo he utilizado este:
sudo apt-get install okteta
Con esto tendríamos nuestro EBOOT desencriptado y lo mismo se puede hacer con PUPs, PKGs y demás.
Veritas de PSX-Scene ha publicado los pasos que ha seguido para editar el EBOOT del NFS en 3.41 pero yo no he conseguido que me funcione
1. Open EBOOT.BIN in a hex editor of your preference.
2. In EBOOT.BIN, look at the SELF control info, if you see anything resembling the game titleid, it’s an NPDRM SELF and this guide won’t work, give up.
3. Use readself on EBOOT.BIN to get information about the encrypted metadata sections.
4. unself EBOOT.BIN eboot.elf
5. Open eboot.elf in a hex editor of your preference.
6. In eboot.elf, go to every encrypted metadata section (now decrypted), copy its data, and replace the encrypted data in EBOOT.BIN.
7. In EBOOT.BIN, change SELF header to indicate it’s FSELF.
8. In EBOOT.BIN, change SELF section headers that are marked as encrypted to say they are not encrypted.
9. If the game is a newer SDK version (like GT5, which is 3.50), in EBOOT.BIN, find the .sys_proc_param segment and change the SDK version to something earlier, such as 3.41. This will probably cause crashes in games that actually use newer SDK features that are not available in earlier SDK versions.
10. Save EBOOT.BIN
11. Cross fingers, run game, hope it works.
Se que hay que copiar el offset que muestra la info encriptada de uno a otro. Pero no lo consigo
A ver si alguien es tan amable de explicarlo un poco mejor
EDITO: Investigando un poco he encontrado esto: Informacion SELF
typedef struct
{
uint32_t magic; // “SCE”
uint32_t version; // 2
uint16_t attribute; // 0×8000 – fself
uint16_t category;
uint32_t metadataInfoOffset;
uint64_t fileOffset;
uint64_t fileSize;
uint64_t unknown06;
uint64_t programInfoOffset;
uint64_t elfHeaderOffset;
uint64_t elfProgramHeadersOffset;
uint64_t elfSectionHeadersOffset;
uint64_t unknown11;
uint64_t unknown12;
uint64_t controlInfoOffset;
uint64_t controlInfoSize;
uint64_t unknown15;
}
SELFHEADER_t;
He conseguido cambiar el tipo a fself editando el décimo par de valores. Pero no encuentro donde decirle a la cabecera que el fichero no esta encriptado