› Foros › PlayStation 3 › Scene
releon escribió:Iris Manager es un gestor que desarrolló Hermes y lamentablemente se retiró de la Scene de PS3.
A no ser que Iris lo modifique alguien con permiso de su creador nunca lo verás en CFW superiores de 3.55
Salu2.
Estwald escribió:releon escribió:Iris Manager es un gestor que desarrolló Hermes y lamentablemente se retiró de la Scene de PS3.
A no ser que Iris lo modifique alguien con permiso de su creador nunca lo verás en CFW superiores de 3.55
Salu2.
Incorrecto: Hermes Manager lo desarrolló Hermes con el código fuente disponible desde el primer día, para quien quisiera trabajar a con el (su última versión junto con todas las librerías desarrolladas y códigos fuentes, se adjuntaron en el hilo oficial) . Iris Manager es la versión de éste que sacó D_Skywalk para 3.55 y también hizo públicos los fuentes. Y no, nadie le tiene que pedir permiso al creador para modificar los fuentes, que para eso los puso a disposición de todos
Y dicho esto, la gente prefiere Multiman que está desarrollado usando el SDK de SONY y que nuevamente, es de código cerrado al parecer. Así que si no hay Iris Manager para 4.30, será por que nadie lo quiera desarrollar y por que algunos dev apuestan por cerrar el código y cosas así, pero no por que Hermes o Estwald se opongan, ni mucho menos (al revés, si yo estaré encantado de la vida si lo hacen )
Saludos
http://david.dantoine.org/
Estwald escribió:releon escribió:Iris Manager es un gestor que desarrolló Hermes y lamentablemente se retiró de la Scene de PS3.
A no ser que Iris lo modifique alguien con permiso de su creador nunca lo verás en CFW superiores de 3.55
Salu2.
Incorrecto: Hermes Manager lo desarrolló Hermes con el código fuente disponible desde el primer día, para quien quisiera trabajar a con el (su última versión junto con todas las librerías desarrolladas y códigos fuentes, se adjuntaron en el hilo oficial) . Iris Manager es la versión de éste que sacó D_Skywalk para 3.55 y también hizo públicos los fuentes. Y no, nadie le tiene que pedir permiso al creador para modificar los fuentes, que para eso los puso a disposición de todos
Y dicho esto, la gente prefiere Multiman que está desarrollado usando el SDK de SONY y que nuevamente, es de código cerrado al parecer. Así que si no hay Iris Manager para 4.30, será por que nadie lo quiera desarrollar y por que algunos dev apuestan por cerrar el código y cosas así, pero no por que Hermes o Estwald se opongan, ni mucho menos (al revés, si yo estaré encantado de la vida si lo hacen )
Saludos
ederedereder escribió:Os dejo el sitio personal de david colmenero por si os interesa contactar con el para este asunto:http://david.dantoine.org/
Ojala lo porten a 4.2x ,que aunque el multiman sea el mas completo en la variedad esta el gusto
D_Skywalk escribió:Hola, me han llegado unos correos diciendome que me pase por aquí...
Yo lo que pasa que estoy ya un tanto desconectado de la escena, pero si puedo actualizar la consola sin perder los saves de la jefa, tengo hoy y mañana libres para trastear
En teoria sería actualizarla, hacer unos dumps del LV2 y comparar
Tengo la noche libre, si alguien se apunta
D_Skywalk escribió:Hola, me han llegado unos correos diciendome que me pase por aquí...
Yo lo que pasa que estoy ya un tanto desconectado de la escena, pero si puedo actualizar la consola sin perder los saves de la jefa, tengo hoy y mañana libres para trastear
En teoria sería actualizarla, hacer unos dumps del LV2 y comparar
Tengo la noche libre, si alguien se apunta
D_Skywalk escribió:Tenemos alguna herramienta para hacer los dumps de LV2? o tengo que portar la mia tambien a 4.30
Un Saludo y voy ya por el 3.55 no check, ya queda menos
Estwald escribió:Wuala! que loco! se actualiza y todo para ponerse con ello, despues de llevar tiempo retirado
Multiman (XD) tambien puede dumpear LV2. Además, si lo dumpeas, con ello irá el payload, supongo
De todas formas hay keys para extraer lv2 desde el propio pup...
ROM:00055F64 loc_55F64: # CODE XREF: ROM:00055F3Cj
ROM:00055F64 # ROM:00055F48j
ROM:00055F64 lis %r31, -0x7FFF
ROM:00055F68 li %r31, 0
ROM:00055F6C b loc_55E78 # -- aquí volvemos....
ROM:00057234 loc_57234: # CODE XREF: ROM:0005720Cj
ROM:00057234 # ROM:00057218j
ROM:00057234 lis %r31, -0x7FFF
ROM:00057238 lis %r31, -0x7FFF
ROM:0005723C li %r31, 0 # -- aquí no :(
D_Skywalk escribió:Acabo de ver un bug en la E3 4.30 que podría dar cuelgues, lo solucionaré desde el Iris parcheando directamente pero no se si ocurrirá igual en Rogero o en 4.21... a saber desde cuando se arrastra (en 3.55 esta todo bien).
Os pego el bug:
Función correcta tal y como se debería parchear:ROM:00055F64 loc_55F64: # CODE XREF: ROM:00055F3Cj
ROM:00055F64 # ROM:00055F48j
ROM:00055F64 lis %r31, -0x7FFF
ROM:00055F68 li %r31, 0
ROM:00055F6C b loc_55E78 # -- aquí volvemos....
Función tal y como aparece en E3 4.30:ROM:00057234 loc_57234: # CODE XREF: ROM:0005720Cj
ROM:00057234 # ROM:00057218j
ROM:00057234 lis %r31, -0x7FFF
ROM:00057238 lis %r31, -0x7FFF
ROM:0005723C li %r31, 0 # -- aquí no :(
El error está en que parchean en 00057238 en lugar de en 00057234 y se comen el salto...
Por lo demás cuento los adelantos, aun sin probar ya he pasado el syscall8 y el hook a 4.30. Sólo los he compilado y ahora andaba repasando los parches que se deben de hacer y ver como están en 4.30... cuando me he encontrado eso
A ver si lo arreglo luego... Necesitaremos a alguien en rogero, para confirmar el bug. Los de 4.21 el LV2 será muy diferente y no os puedo asegurar que pueda haber iris para esa versión (al no poder yo testear allí).
Un Saludo a todos los viejunos que seguían usando iris en 3.55 y voy a ver si ceno algo
#define HVSC_SYSCALL 811 // which syscall to overwrite with hvsc redirect
#define HVSC_SYSCALL_ADDR 0x8000000000195540ULL // where above syscall is in lv2
#define NEW_POKE_SYSCALL 813 // which syscall to overwrite with new poke
#define NEW_POKE_SYSCALL_ADDR 0x8000000000195A68ULL // where above syscall is in lv2
#define SYSCALL_TABLE 0x8000000000346570ULL
#define SYSCALL_PTR(n) (SYSCALL_TABLE + 8 * (n))
#define HV_BASE 0x8000000014000000ULL // where in lv2 to map lv1
#define HV_SIZE 0x001000 // 0x1000 (we need 4k from lv1 only)
#define HV_PAGE_SIZE 0x0c // 4k = 0x1000 (1 << 0x0c)
#define HV_START_OFFSET 0x363000 // remove lv2 protection
#define HV_OFFSET 0x000a78 // at address 0x363a78
#define HV_START_OFFSET2 0x16f000 // set lv2 access rights for sys_storage
// at address 0x16f3b8
D_Skywalk escribió:Pues si alguien se anima a ayudar necesitaría para comprobar si tenemos parcheado lv1/lv2.
Deben ser del UPDATE.PUP sólo necesitamos en principio lv1 y lv2 de ahí tanto 3.55 como 4.30 (OFW y E3) -- para que podamos comparar --
Os dejo esos deberes para mañana, necesitamos comprobar si han tocado LV1 el E3 Team y si necesitamos cambiar algo de aquí:#define HVSC_SYSCALL 811 // which syscall to overwrite with hvsc redirect
#define HVSC_SYSCALL_ADDR 0x8000000000195540ULL // where above syscall is in lv2
#define NEW_POKE_SYSCALL 813 // which syscall to overwrite with new poke
#define NEW_POKE_SYSCALL_ADDR 0x8000000000195A68ULL // where above syscall is in lv2
#define SYSCALL_TABLE 0x8000000000346570ULL
#define SYSCALL_PTR(n) (SYSCALL_TABLE + 8 * (n))
#define HV_BASE 0x8000000014000000ULL // where in lv2 to map lv1
#define HV_SIZE 0x001000 // 0x1000 (we need 4k from lv1 only)
#define HV_PAGE_SIZE 0x0c // 4k = 0x1000 (1 << 0x0c)
#define HV_START_OFFSET 0x363000 // remove lv2 protection
#define HV_OFFSET 0x000a78 // at address 0x363a78
#define HV_START_OFFSET2 0x16f000 // set lv2 access rights for sys_storage
// at address 0x16f3b8
Si conseguís eso, como todo lo demás está hecho (payload, fixes, funcs) yo creo que mañana podríamos tener una alfa para ir haciendo pruebas
Update:
He publicado los cambios ya en el git: http://gitorious.ps3dev.net/irismanager ... anager-4-x
Un Saludo y buenas noches
D_Skywalk escribió:Pues si alguien se anima a ayudar necesitaría para comprobar si tenemos parcheado lv1/lv2.
Deben ser del UPDATE.PUP sólo necesitamos en principio lv1 y lv2 de ahí tanto 3.55 como 4.30 (OFW y E3) -- para que podamos comparar --
Os dejo esos deberes para mañana, necesitamos comprobar si han tocado LV1 el E3 Team y si necesitamos cambiar algo de aquí:
.unknown:800000000035DBE0 off_800000000035DBE0:.quad qword_800000000033BF88 #sys 0
.unknown:800000000035DBE8 .quad unk_80000000002FEA28 #sys 1
.unknown:800000000035DBF0 .quad off_80000000002FE950 #sys 2
.unknown:800000000035DBF8 .quad unk_80000000002FEA88 #sys 3
.unknown:800000000035DC00 .quad unk_80000000002FEA40 #sys 4
.unknown:800000000035DC08 .quad unk_80000000002FEB18 #sys 5
.unknown:800000000035DC10 .quad qword_800000000033BF88 #sys 6
.unknown:800000000035DC18 .quad qword_800000000033BF88 #sys 7
.unknown:800000000035DC20 .quad qword_800000000033BF88 #sys 8
.unknown:800000000035DC28 .quad qword_800000000033BF88 #sys 9
.unknown:800000000035DC30 .quad qword_800000000033BF88 #sys 10
.unknown:800000000035DC38 .quad qword_800000000033BF88 #sys 11
.unknown:800000000035DC40 .quad unk_80000000002FE9E0 #sys 12
....
.unknown:800000000035DD00 .quad qword_800000000033BF88 #sys 36
.unknown:800000000035DC10 .quad off_8000000000305610 #sys 6 (peek)
.unknown:800000000035DC18 .quad off_800000000032A330 #sys 7 (poke)
entrada de syscall peek:
off_8000000000305610: .quad loc_800000000000170C -> apunta a rutina
.unknown:8000000000305618 .quad unk_8000000000348200
.unknown:8000000000305620 .quad 0
D_Skywalk escribió:Excelente, bueno todo eso ya creo que lo tenemos lo que necesito es saber que han tocado del LV1 y donde están ahora HVSC_SYSCALL_ADDR y NEW_POKE_SYSCALL_ADDR y si están parcheadas o tenemos que parchear también LV2 para que podamos tocarlo (ya sabéis aquello de dejar el check en un solo byte).
Por cierto, lo he puesto en twitter pero ya subí el git con todos los avances: http://gitorious.ps3dev.net/irismanager-4-x
Un Saludo y si me decís eso (yo aquí no tengo para desencriptar LV1) podemos hacer ya pruebas
void lv1_poke(u64 address, u64 value)
{
Lv2Syscall2(7, HV_BASE + address, value);
}
int map_lv1(void)
{
int result = lv1_undocumented_function_114(0, 0xC, HV_SIZE, &mmap_lpar_addr);
if (result != 0) {
return 0;
}
result = mm_map_lpar_memory_region(mmap_lpar_addr, HV_BASE, HV_SIZE, 0xC, 0);
if (result) {
return 0;
}
return 1;
}
void patch_lv2_protection(void)
{
// changes protected area of lv2 to first byte only
lv1_poke(0x363a78, 0x0000000000000001ULL);
lv1_poke(0x363a80, 0xe0d251b556c59f05ULL);
lv1_poke(0x363a88, 0xc232fcad552c80d7ULL);
lv1_poke(0x363a90, 0x65140cd200000000ULL);
}
D_Skywalk escribió:Esta forma de hablar que me sonaba como al maestro...
mecagonlaputa que me he emocionao y todo X_DD
Es que llevo toda la puta tarde intentando desencriptar el lv1 de 4.30 para ver con el IDA que cojones han tocado los de E3 Team y nada ahora me peta el wine con las scetools ¬¬_
Total ya podemos mirar si rula, que yo creo que si, pero me gustaría comprobar que han hecho estos mangurrianes sólo viendo el fallo que reporté antes, me gustaría tener un diff de lo que han tocado, al menos por saber todas las modificaciones. Lo que menos me gusta de los nuevos CFW es que están ultra magreados, vamos el modo stealth de las sys8 poco sentido tiene ya
Igualmente lo que intento es poder usar el lv2_memcpy que vendría muy bien para el bdemu
Un Saludo y un placer ^^_
// changes protected area of lv2 to first byte only
lv1_poke(0x36CA78, 0x0000000000000001ULL);
lv1_poke(0x36CA80, 0xe0d251b556c59f05ULL);
lv1_poke(0x36CA88, 0xc232fcad552c80d7ULL);
lv1_poke(0x36CA90, 0x65140cd200000000ULL);
Estwald escribió:Tienes un MP: avisa cuando ya lo tengas (dicho en todos los sentidos: por si las moscas, cómo ando en 3.55 voy a hacerte un dump de LV1 y así al menos sabrás que buscar si la corrección que te he pegado no funciona )
00195A68 F8 21 FF 01 7C 08 02 A6 FB C1 00 F0 FB E1 00 F8
00195A78 EB C2 FE 28 7C 7F 1B 78 38 60 03 2D FB A1 00 E8
001B6950 F8 21 FF 01 7C 08 02 A6 FB C1 00 F0 FB E1 00 F8
001B6960 EB C2 FE 88 7C 7F 1B 78 38 60 03 2D FB A1 00 E8
offset 0x363a78 0000000000332948 79C74B46BCCC8198 BF5CE935F3A8F412 6BFB4F9C00000000
.unknown 8000000000000000 8000000000003028 R W X . L dword 00000001 public CODE 64
.unknown 8000000000003080 80000000002BB784 R . X . L dword 00000002 public CODE 64
.unknown 80000000002BB790 80000000002DF92C R . . . L qword 00000003 public CONST 64
.unknown 80000000002DF930 80000000002DF9B0 R W . . L qword 00000004 public DATA 64
.unknown 80000000002DF9B0 80000000002E58C0 R W . . L byte 00000005 public DATA 64
.unknown 80000000002E58C0 8000000000328538 R W . . L qword 00000006 public DATA 64
.unknown 8000000000328540 8000000000332948 R W . . L qword 00000007 public DATA 64
.unknown 8000000000332980 8000000000349090 R W . . L byte 00000008 public DATA 64
.unknown 8000000000349090 8000000000464D60 R W . . L byte 00000009 public BSS 64
4.21 patches
[edit] Summary
[edit] lv2_kernel.self
[edit] kakaroto's sigcheck patch
In memory 0x800000000005A2A8 (which corresponds to offset 0x6a2a8 in lv2_kernel.elf) replace : "e9 22 99 90 7c 08 02 a6" with : "38 60 00 00 4e 80 00 20".
(Source: https://twitter.com/KaKaRoToKS/status/2 ... 6972798977)
The NPDRM ECDSA signature in the SELF footer is checked by lv2. It first asks appldr to tell it whether or not the signature is to be checked, and appldr will only set the flag if the SELF is a NPDRM with key revision from 3.56+ (the ones without private keys). This means that the SELF files signed with the new 3.56+ keys still don't have their ecdsa checked (probably to speed up file loading).
If appldr says the ecdsa signature must be checked, then lv2 will verify it itself, and return an error if it's not correct
800000000005A3F8 > pokear 0x38 60 00 00 4e 80 00 20
.unknown:800000000005ABE0 ld %r9, -0x6670(%rtoc)
.unknown:800000000005ABE4 mr %r6, %r21
.unknown:800000000005ABE8 ld %r0, 0x80(%sp) -> reemplazar por ld %r0, 0
.unknown:800000000005ABEC mr %r7, %r20
:npdrm
echo Please put EBOOT.BIN in the extracted folder first...
pause
echo Please input Content-ID following the example
SET /P cid= (EX:JP0700-NPJB00001_00-0000000000000000):
scetool.exe --decrypt EBOOT.BIN EBOOT.ELF
rename EBOOT.BIN EBOOT.BIN.BAK
scetool.exe -v --sce-type=SELF --compress-data=TRUE --skip-sections=TRUE --key-revision=10 --self-auth-id=1010000001000003 --self-add-shdrs=TRUE --self-vendor-id=01000002 --self-type=NPDRM --self-app-version=0001000000000000 --self-fw-version=0003006000000000 --np-license-type=FREE --np-content-id=%cid% --np-app-type=EXEC --np-real-fname=EBOOT.BIN --encrypt EBOOT.ELF EBOOT.BIN
del EBOOT.ELF
echo NPDRM Resign finished.
Estwald escribió:Bueno, ahora si que está correctamente los parches esos que mencionaba, que había metido el gambazo sin darme cuenta (si es que está uno oxidado )
De todas maneras, mira que son mamones algunos que seguro que tienen los payloads correctamente ajustados y nos están haciendo de currar a nosotros sin decir ni pío
skywalker@dagoba:/home/david/desarrollo/PS3/ps3dev/scetool$ wine scetool.exe -v --sce-type=SELF --compress-data=TRUE --skip-sections=TRUE --key-revision=10 --self-auth-id=1010000001000003 --self-add-shdrs=TRUE --self-vendor-id=01000002 --self-type=NPDRM --self-app-version=0001000000000000 --self-fw-version=0003006000000000 --np-license-type=FREE --np-content-id=UP0001-IMANAGER4_00-0000000000000000 --np-app-type=EXEC --np-real-fname=EBOOT.BIN --encrypt irismanager-stable.elf EBOOT.BIN
scetool 0.2.9 <public build> (C) 2011-2012 by naehrwert
NP local license handling (C) 2012 by flatz
[*] Loaded keysets.
[*] Loaded loader curves.
[*] Loaded vsh curves.
[*] Skipped program header TLS @ 0x00120004 (0x00000000)
[*] Skipped program header PARAMS @ 0x00000000 (0x00000000)
[*] Skipped program header PRX @ 0x001006B0 (0x00000000)
[*] SELF built.
[*] Skipped compression of section 004 (size is zero)
[*] Data compressed.
[*] Data encrypted.
[*] EBOOT.BIN written.
cp EBOOT.BIN ~/pkg/USRDIR/
pkg.py --contentid UP0001-IMANAGER4_00-0000000000000000 ~/pkg/ irismanager-stable-430.pkg
[X] Magic: 7f504b47
[X] Type: 00000001
[X] Offset to package info: 000000c0
[ ] unk1: 00000005
[X] Head Size: 00000080
[X] Item Count: 00000004
[X] Package Size: 00000000000f7100
[X] Data Offset: 0000000000000140
[X] Data Size: 00000000000f6f60
[X] ContentID: 'UP0001-IMANAGER4_00-0000000000000000'
[X] QA_Digest: B86661ADAE7EEAC6EC67A3C8C7963
[X] K Licensee: 00000000000000000000000000000000
D_Skywalk escribió:Y sigue dando el error 80010017
No te digo que me atranco en las tonterías... alguna pista?
Un Saludo, esto de no tener preparadas las tools es un rollo
pkg: $(BUILD)
@echo Creating PKG...
@mkdir -p $(BUILD)/pkg
@mkdir -p $(BUILD)/pkg/USRDIR
@cp $(ICON0) $(BUILD)/pkg/
./scetool.exe --self-app-version=0001000000000000 --sce-type=SELF --compress-data=TRUE --self-add-shdrs=TRUE --skip-sections=FALSE --key-revision=1 --self-auth-id=1010000001000003 --self-vendor-id=01000002 --self-type=NPDRM --self-fw-version=0003004000000000 --np-license-type=FREE --np-content-id=$(CONTENTID) --np-app-type=EXEC --np-real-fname=EBOOT.BIN --encrypt $(BUILD)/$(TARGET).elf $(BUILD)/pkg/USRDIR/EBOOT.BIN
@$(SFO) --title "$(TITLE)" --appid "$(APPID)" -f $(SFOXML) $(BUILD)/pkg/PARAM.SFO
@$(PKG) --contentid $(CONTENTID) $(BUILD)/pkg/ $(OUTPUT).pkg