Reversando el TB - La máquina virtual oculta

Moderadores: Kravenbcn, largeroliker, fidelcastro, cerealkiller, pspCaracas, dark_sasuke, m0skit0, LnD, ka69, zacky06, driKton

Avatar de Usuario
Kravenbcn
Administrador
Administrador
Mensajes: 16291
Registrado: 01 Sep 2009, 21:27
PSN ID: Kravenbcn
Twitter: Kravenbcn
Ubicación: Barcelona
Contactar:

Reversando el TB - La máquina virtual oculta

Mensaje por Kravenbcn »

El desarrollador naehrwert, creador de SCETool v2.7, está de vuelta con una nueva actualización para todos los desarrolladores de PS3, esta vez la liberación no es una herramienta, sino una información reciente que ha encontrado y ha querido compartir. Echando un vistazo al Payload de TrueBlue, naehrwert ha encontrado lo que parece ser una VM (máquina virtual) que figura en el código. El siguiente paso es invertir las instrucciones escondidas en el interior de la máquina virtual, y luego crear un desensamblador y el emulador.


Gracias a oct0xor podríamos tener en nuestras manos el payload de TB descifrado (etapa 2). Por supuesto, lo primero que se debe hacer es disparar en IDA, nuestra herramienta favorita de la operación. El código de entrada de la carga útil es la siguiente:

Código: Seleccionar todo

01 1337C0DE00000000 _start:
02 1337C0DE00000000
03 1337C0DE00000000 .set var_58, -0x58
04 1337C0DE00000000 .set arg_10,  0x10
05 1337C0DE00000000
06 1337C0DE00000000         mflr      r0
07 1337C0DE00000004         bl        loc_1337C0DE00000008
08 1337C0DE00000008 1337C0DE00000008 loc_1337C0DE00000008:
09 1337C0DE00000008         mflr      r3
10 1337C0DE0000000C         lis       r4, 0 # 8
11 1337C0DE00000010         addi      r4, r4, 8 # 8
12 1337C0DE00000014         subf.     r3, r4, r3
13 1337C0DE00000018         beq       skip_reloc
14 1337C0DE0000001C         li        r6, 0
15 1337C0DE00000020         oris      r6, r6, 0x1337
16 1337C0DE00000024         ori       r6, r6, 0xC0DE
17 1337C0DE00000028         lis       r4, 1 # 0xA848
18 1337C0DE0000002C         addi      r4, r4, -0x57B8 # 0xA848
19 1337C0DE00000030         lis       r5, 1 # 0x10D18
20 1337C0DE00000034         addi      r5, r5, 0xD18 # 0x10D18
21 1337C0DE00000038         subf.     r5, r4, r5
22 1337C0DE0000003C         beq       skip_reloc
23 1337C0DE00000040         srdi.     r5, r5, 3
24 1337C0DE00000044         mtctr     r5
25 1337C0DE00000048         add       r4, r4, r3
26 1337C0DE0000004C
27 1337C0DE0000004C reloc_loop:
28 1337C0DE0000004C         ld        r5, 0(r4)
29 1337C0DE00000050         srdi      r7, r5, 32
30 1337C0DE00000054         cmpw      r7, r6
31 1337C0DE00000058         bne       skip_rewrite
32 1337C0DE0000005C         clrldi    r5, r5, 32
33 1337C0DE00000060         add       r5, r5, r3
34 1337C0DE00000064         std       r5, 0(r4)
35 1337C0DE00000068
36 1337C0DE00000068 skip_rewrite:
37 1337C0DE00000068         addi      r4, r4, 8
38 1337C0DE0000006C         bdnz      reloc_loop
39 1337C0DE00000070
40 1337C0DE00000070 skip_reloc:
41 1337C0DE00000070         std       r0, arg_10(r1)
42 1337C0DE00000074         stdu      r1, -0x80(r1)
43 1337C0DE00000078         std       r2, 0x80+var_58(r1)
44 1337C0DE0000007C         lis       r4, 1 # 0x17E40
45 1337C0DE00000080         addi      r4, r4, 0x7E40 # 0x17E40
46 1337C0DE00000084         add       r2, r4, r3
47 1337C0DE00000088         bl        payload_main


En el primer bucle se reubica con 0x1337C0DE como un identificador para más de 32 bits y vuelve a escribir que a la base real. El desmontaje anteriormente ya estaba cargado con 0x1337C0DE00000000 como base. Mientras se desplaza a través de la sección de datos al final del Payload, uno rápidamente se da cuenta de que la RTOC es 0x1337C0DE00017E40.

Como yo estaba analizando el código encontré un sub que era básicamente un gran interruptor, con valores aleatorios en busca de casos. Una vez que se invierte en la sub 0x1337C0DE00002578 y algunos de los siguientes y se analiza su uso en los sub interruptores, yo sabía que estaba viendo a una máquina virtual.

Código: Seleccionar todo

1 1337C0DE00002578 vm_push_word_0:
2 1337C0DE00002578         ld        r11, off_1337C0DE00010128 # stack_ptr
3 1337C0DE0000257C         ld        r9, 0(r11)
4 1337C0DE00002580         addi      r0, r9, 4
5 1337C0DE00002584         std       r0, 0(r11)
6 1337C0DE00002588         stw       r3, 4(r9)
7 1337C0DE0000258C         blr


Los paranoicos desarrolladores de TB, incluso utilizan tablas XOR para ocultar las instrucciones y los datos de la VM. La máquina virtual es en su mayoría pila de base, pero las instrucciones que le permiten trabajar con registros también. La siguiente cosa a hacer es dejar sin efecto todas las instrucciones y escribir un desensamblador y el emulador. Aquí hay un código para descifrar el binario de máquina virtual embebida para una mayor investigación. Voy a escribir más sobre este tema en el futuro.
No te pierdas nada, sigue a DaXHordes en Twitter, Facebook, Google+ y Youtube

Imagen
¿Quieres formar parte del equipo de DaXHordes.org? Esta es tu oportunidad.
PS3 · PS Vita · PSP

Avatar de Usuario
zack II
Experto
Experto
Mensajes: 2024
Registrado: 30 Mar 2010, 20:11
PSN ID: zack_II
Ubicación: Apendi-City

Reversando el TB - La máquina virtual oculta

Mensaje por zack II »

O sea que el True Blue se basa en la emulación de algo? En ese caso ¿Que se emula?
Imagen

Spoiler:
V de Vendetta escribió:
El pueblo no debería temer a sus gobernantes, son los gobernantes los que deberían de temer al pueblo.
V de Vendetta escribió:
Podrán matar al hombre, pero permanecerán sus ideales.

TheJosh
Enteradillo
Enteradillo
Mensajes: 31
Registrado: 24 Ene 2011, 18:07

Re: Reversando el TB - La máquina virtual oculta

Mensaje por TheJosh »

¿Con esto se podria crear un cfw basado en el payload de TB?

Avatar de Usuario
Kravenbcn
Administrador
Administrador
Mensajes: 16291
Registrado: 01 Sep 2009, 21:27
PSN ID: Kravenbcn
Twitter: Kravenbcn
Ubicación: Barcelona
Contactar:

Re: Reversando el TB - La máquina virtual oculta

Mensaje por Kravenbcn »

Sep, una vez se reverse por completo el código debería poderse, o simplemente crear un nuevo payload para cfw que permita instalar el payload a parte del cfw como es el caso de Kmeaw.
No te pierdas nada, sigue a DaXHordes en Twitter, Facebook, Google+ y Youtube

Imagen
¿Quieres formar parte del equipo de DaXHordes.org? Esta es tu oportunidad.
PS3 · PS Vita · PSP

TheJosh
Enteradillo
Enteradillo
Mensajes: 31
Registrado: 24 Ene 2011, 18:07

Re: Re: Reversando el TB - La máquina virtual oculta

Mensaje por TheJosh »

Kravenbcn escribió:Sep, una vez se reverse por completo el código debería poderse, o simplemente crear un nuevo payload para cfw que permita instalar el payload a parte del cfw como es el caso de Kmeaw.


¿Podriamos dar una fecha aproximada? ¿Se sabe si ya se esta en ello? Tengo unas ganas de jugar a los juegos nuevos........

Avatar de Usuario
zack II
Experto
Experto
Mensajes: 2024
Registrado: 30 Mar 2010, 20:11
PSN ID: zack_II
Ubicación: Apendi-City

Re: Reversando el TB - La máquina virtual oculta

Mensaje por zack II »

¿Fecha aproximada? Cosa poco común en la scene, cuando se tiene algo, se libera y fuera. Si hay una fecha hay que trabajar con presiones, ¿no te parece? y trabajando en ello, pues supongo que alguien habrá echado un vistazo y estará mirando a ver si es factible realizar algo con ello.
Imagen

Spoiler:
V de Vendetta escribió:
El pueblo no debería temer a sus gobernantes, son los gobernantes los que deberían de temer al pueblo.
V de Vendetta escribió:
Podrán matar al hombre, pero permanecerán sus ideales.

TheJosh
Enteradillo
Enteradillo
Mensajes: 31
Registrado: 24 Ene 2011, 18:07

Re: Reversando el TB - La máquina virtual oculta

Mensaje por TheJosh »

Tampoco se pide trabajar bajo presion. Bastante estan haciendo ya en la Scene como para encima meter presion. Solo digo si se sabia mas o menos si alguien estaba trabajando ya en esto y si se podia dar alguna fecha aproximada.....

Pregunta:

A dia de hoy, ¿os comprariais el TB (o dongle similar) o esperariais a que se liberara el payload?

Avatar de Usuario
zacky06
Moderador Global
Moderador Global
Mensajes: 1696
Registrado: 12 Jul 2010, 15:28
PSN ID: zakarias09
Steam ID: Zacky06
Contactar:

Re: Reversando el TB - La máquina virtual oculta

Mensaje por zacky06 »

TheJosh escribió:Tampoco se pide trabajar bajo presion. Bastante estan haciendo ya en la Scene como para encima meter presion. Solo digo si se sabia mas o menos si alguien estaba trabajando ya en esto y si se podia dar alguna fecha aproximada.....

Pregunta:

A dia de hoy, ¿os comprariais el TB (o dongle similar) o esperariais a que se liberara el payload?


Si te soy sincero, la cantidad de eboots que tienen listado en la web del dongle es muy completa, y que con lo que cuesta el aparato lo amortizas con un par de juegos que busques por don google más el eboot que te descargas, pues es muy apetecible comprarlo y jugar a todo lo nuevo.

Sobre la fecha aproximada, yo no te sabría decir, la verdad me gustaría que esto llegase a buen puerto y que no se le moleste en lo más mínimo a quien estén trabajando en esto, y que los que esperamos a los sceners de verdad, al final lo consiguen por otros metodos y lo liberan para todos sin pasar por caja.
Imagen

Mis Consolas:
Ps2 Phat v9 + Modchip Matrix Infinity 1.99 & Ps2 Phat v3
Psp Phat White 1004 5.00M33-6 Psp 2004 Slim Black Piano 6.60 ME 1.3 Psp Go 6.60 LME 1.8
Ps3 Slim 320Gb OFW 4.30 - CFW Rebug 4.73.1 REX Cobra 7.03
Ps3 Slim 500Gb OFW 4.75

Avatar de Usuario
zack II
Experto
Experto
Mensajes: 2024
Registrado: 30 Mar 2010, 20:11
PSN ID: zack_II
Ubicación: Apendi-City

Reversando el TB - La máquina virtual oculta

Mensaje por zack II »

Yo no me lo compraría, pero por el hecho de que no quiero liberar la consola. Y creo que si hasta ahora la has tenido sin liberar, no pasara nada si la mantienes así durante mas tiempo.


Sent from iPhone
Imagen

Spoiler:
V de Vendetta escribió:
El pueblo no debería temer a sus gobernantes, son los gobernantes los que deberían de temer al pueblo.
V de Vendetta escribió:
Podrán matar al hombre, pero permanecerán sus ideales.

TheJosh
Enteradillo
Enteradillo
Mensajes: 31
Registrado: 24 Ene 2011, 18:07

Re: Reversando el TB - La máquina virtual oculta

Mensaje por TheJosh »

No se ahora, estoy en duda. No se si dejar la PS3 asi hasta que haya algo y darle uso a la Xbox 360....

Responder