Te explico como esta encriptado el el exe.
Hay 2 bloques de datos: uno empieza en el offset 0x8030 y acaba en 0x4a02F y el otro empieza el 0x4a030 y acaba en 0x11002F
el bloque 1 es el sistema de archivos, fat,etc... y se carga empezando en la página 0 de la flash, el bloque 2 es el elf (osdmain.elf, osd110.elf,... todos apuntan al mismo sitio de la card) y se carga empezando la pagina 0xc000.
para decodificar el sistema de archivos, he usado esta informacion:
http://www.csclub.uwaterloo.ca:11068/mymc/ps2mcfs.html
Estos 2 bloques estan encriptados. La encriptación es simple:
Primero para cada página de flash en los bloques de datos que he puesto arriba (bloques de 0x210 bytes) preparas otro bloque del 0x210 bytes todo a 0s y en el primer dword escribes el número de página (empezando en 0), en little endian (la página 1 seria 01 00 00 00, la página 256: 00 01 00 00). Ten en cuenta que el 2º bloque empieza en la página 0xc000.
A continuación calculas el hash SHA256 de los primeros 16 bytes de este bloque, sobreescribiendo esos 16 bytes y los siguientes 16 (el hash devuelve 32 bytes) con el hash, avanzas 16 bytes y repites (de esta forma el siguiente hash se hace sobre los ultimos 16 bytes del hash anterior). En el bloque de 16 bytes que empieza en el offset 0x1F0 dejas el hash completo, de forma que ese hash resultado cubre hasta el 0x210.
Una vez que tienes el bloque preparado, haces un XOR byte a byte del bloque original con el bloque de "claves". con eso obtienes un bloque desencriptado, avanzas al siguiente (incrementando el número de página), vuelves a generar el correspondiente bloque de claves y repites hasta que ya no haya mas.
Si quieres te puedo pasar el programa en C que he escrito para sacarlo y generar una imagen de memory card de 32MB