Bue, ya he metido el wanin en mi PS3 y a no ser que haya errado en algo, no está completamente portada la syscall8 que es la que nos interesa, si alguien quiere le puedo mandar el hmanager y que haga una prueba, pero está a medio terminar. Suponiendo que wanin lo hubiera querido terminar...
Wanin ha parcheado algunas funciones como la syscall 9 y 10...
syscall 9/10 (OFW)lis %r3, -0x7FFF //unsupported
ori %r3, %r3, 3
blr //end syscall 9
lis %r3, -0x7FFF //unsupported
ori %r3, %r3, 3
blr // end syscall 10
syscall 9/10 (WaninV2)icbi %r0, %r3 //Instruction Cache Block Invalidate
isync
blr //end syscall 9
dcbf %r0, %r3 //Data Cache Block Flush
sync
blr //end syscall 10
Total que añade unos comandos para jugar con la cache, no se para que propósito...
Luego parchea syscall 8 y 35 (¿?) apuntando desde la tabla de syscalls a la posición del payload cargado...
003465B0 80 00 00 00 00 00 F2 E0 80 00 00 00 00 2E 82 00 Ç.....=ÓÇ.....é. (syscall8 - 0xF2E8)
...
00346680 80 00 00 00 00 32 49 68 80 00 00 00 00 00 F1 C4 Ç....2IhÇ.....±- (syscall35 - 0xF130?)
00346690 80 00 00 00 00 32 49 68 80 00 00 00 00 32 49 68 Ç....2IhÇ....2Ih (syscall36 - no mod?)
La syscall 35 parece una versión en pruebas de la 36, no está totalmente funcional al parecer y la syscall 8 sólo funcionan las llamadas a funciones de hecho, no funciona ni el stealth que implementó hermes.
Finalmente parchea todo esto, para evitar las protecciones de 3.55, lo dejo a modo patch (el original sería kmeaw)
//3.55 fixes waninV2
-00079d80 38 84 ff fa 7c 08 02 a6 f8 21 ff 91 2b 84 00 36 |8...|....!..+..6| (addi ...)
+00079d80 38 80 00 00 90 83 00 00 4e 80 00 20 2b 84 00 36 |8.......N.. +..6| (return 0? - li %r4, 0)
-00024e40 f9 21 00 a0 4b fe 99 ad 54 63 06 3e 2f 83 00 00 |.!..K...Tc.>/...|
+00024e40 f9 21 00 a0 4b fe a5 c5 54 63 06 3e 2f 83 00 00 |.!..K...Tc.>/...| (sys8 configure jump? - 0xF408)
-000c1dd0 4b f4 ca 21 e8 01 00 a0 78 63 06 20 7c 08 03 a6 |K..!....xc. |...|
+000c1dd0 4b f4 d6 39 e8 01 00 a0 78 63 06 20 7c 08 03 a6 |K..9....xc. |...| (sys8 configure jump? - 0xF408)
-002b3290 f8 01 00 b0 7c 9c 23 78 7c 7d 1b 78 4b d9 b4 11 |....|.#x|}.xK...|
+002b3290 f8 01 00 b0 7c 9c 23 78 4b d5 bf 40 4b d9 b4 11 |....|.#xK..@K...| (openhook jump - 0xF1D8)
00055dc0 e8 01 00 c0 38 60 00 00 eb 41 00 80 eb 61 00 88 |....8`...A...a..| (add li 0 - 0x55DC4)
00055f20 e8 62 98 28 7c 84 07 b4 60 00 00 00 3f e0 80 01 |.b.(|...`...?...| (add nop - 0x55F28)
0007af70 4b ff f4 ed 54 63 06 3e 2f 83 00 00 60 00 00 00 |K...Tc.>/...`...| (add nop - 0x7AF7C)
Bueno más o menos esto es lo que tiene el wanin, la verdad no entiendo muy bien el objetivo de parchear syscall8 para luego no usarla o de en lugar de usar el estandar para el parcheo bd, la syscall36, ponerte a parchear la syscall35
Pero quizás es que me falta meter algo más y por esto no me funcionan, si alguien con waninv2 quiere probar el hmanager modificado para wanin que me avise...
Un Saludo y por si no quedó claro, seguimos perdidos