Skip to main content

XBOX Media Center

Hace bastante tiempo que quería comprarme un media center. Anteriormente, tuve un disco duro externo Woxter que podía reproducir divx y que tuvo un tiempo de vida muy corto, no se lo recomiendo a nadie.

Como no quería gastarme mucho dinero (quien pudiera), descarté la idea de un PC media center o un Apple TV. Despues de lo del Woxter tampoco quería más discos externos.
Después de investigar un poco la situación finalmente di con la solución.

Una XBOX (de las antiguas) podía ser hackeada por software facilmente y con ello, instalarle cualquier cosa basada en x86, ya que la XBOX no deja de ser un Pentium III.
Además, resulta que para esta consola existe el mejor homebrew media center que se conoce, y no es otro que XBMC, basado en mediaplayer compilado con el SDK de M$.


Por supuesto, no hay que olvidar que una XBOX a pelo te puede salir por unos 99 leurus, encima precio psicológico.
No falta decir que no quería ni oír hablar de chips ni nada por hardware que me subiera el precio, así que todo lo demás (xploit) por soft y 0% de aditivos.

Decidí comprar un modelo nuevo, nada de segunda mano. Resultó un poco complicado ya que esta prácticamente extinguida, pero al final me hice con un ejemplar.

Y aquí el proceso:

Las XBOX son vulnerables a un buffer overflow situado en las fuentes del Dashboard (su firmware vamos).
No estoy seguro si cualquier versión del firmware es xploitable pero al menos cualquiera de las ultimas que puedas comprar seguro que sí.
De todas maneras siempre podrás actualizarla.

Para meterle el xploit deberemos de quemar un CD con el firmware hackeado que se substituirá al actual y que habilitará la ejecución de código así como la carga de cds no originales y la reproducción de DVDs.
El CD que yo utilicé esta basado en el xploit NDURE con un dashboard UnleashX.

Vayamos al grano.

La XBOX tiene un precioso HD de 10 Gb donde almacena el firmware que debemos modificar metiéndole la pomada NDURE. Esta claro que para meterle mano, tendremos que abrirla.



Por supuesto que los de M$ no son tontos y no permiten modificar el contenido del HD así como así. El HD se encuentra bloqueado por un código único residente en la bios de la consola. Cuando enchufamos el HD al PC no permite su uso normal al estar bloqueado. Así que para meterle la pomada se debe desbloquear el disco duro y esto sólo ocurre cuando esta conectado a la XBOX.
Mal rollo.


Pero hay solución...

Para ello deberemos de realizar la técnica del hotswap (abstenerse precavidos). El hotswap significa un cambio en caliente del cable IDE la consola por el del PC.
Al arrancar desde la consola el disco duro podrá ser desbloqueado y en ese momento deberemos cambiar el IDE de la XBOX por el del PC, que debe de encontrarse encendido.
Este cambio no puede realizarse en cualquier momento. La consola debe tener el HD desbloqueado y normalmente no es así, para ello deberemos forzar un error del sistema. Lo más fácil es arrancar con el IDE del lector DVD desconectado, obteniendo un precioso error 12.


En cuanto al PC más de lo mismo. Deberemos de arrancar desde el CD NDURE+UnleashX pero conectandole el HD de la XBOX antes de que reconozca las unidades. Parece complicado aunque no lo es. Simplemente deberemos pausar el arranque mientras se realiza el testeo de la ram.



Justo en ese punto es cuando deberemos intercambiar los IDES.
Esto nos permitirá tener el HD desbloqueado conectado al PC y meterle a fondo la pomada :)



Una vez metida la pomada, lo guardamos todo otra vez en su sitio y cargamos el UnleashX, nuestro nuevo Dashboard.
Ahora, cuando iniciemos la consola, si apretamos el botón de apertura del DVD se cargará el firmware original, y si pulsamos el botón de encendido, el firmware modificado :)



Una vez con la pomada dentro, simplemente podremos meterle por FTP todo lo que queramos, una Debian, el XBMC, emuladores..., lo que el cuerpo te pida, vamos.



Falta decir que esto no es una guía a seguir, faltan ciertas precauciones a tomar y otras ayudas.

Aconsejo seguir esta guía:
How to Softmod Your Xbox Using XboxHDM (Ndure)


Mano de santo señores.

Comments

Roger said…
Quien sabe si algun dia, Xbox sera la consola más vendida precisamente por XBMC ?

Popular posts from this blog

Programando un algoritmo de flocking / manada

Hace tiempo me interesé por los algoritmos de flocking o movimientos de manada. Esto pude sonar a chino, pero simplemente se trata de tratar emular los movimientos en conjunto de los pajaros, bancos de peces, ovejas…, vamos, cualquier conjunto de animales en movimiento. Las reglas de movimiento, a pesar de que puedan parecer complejas a simple vista, estan basadas sólo en tres simples leyes: Repulsión : Intentar no chocar con los compañeros. Alineamiento : Avanzar en una dirección semejante a la de tus compañeros. Cohesión : Acercarse hacia el centro del grupo. De la media de estos valores se extrae el vector director de cada individuo. VectorDirector = (Repulsión + Alineamiento + Cohesión)/3 Pues con esta idea intenté ayer programar una pequeña demo para implementarlo. Aquí os pongo un video de como esta quedando. Aún quedan por retocar varias cosas ya que algunas reglas no las estoy aplicando estrictamente. La parte más importante que no esta implementada es el

Himno de Teleco

Himno de la carrera de ingeniería de Telecomunicaciones, al más puro estilo Dragon Ball. Para echarte unas risas. Aviso de antemano: el humor de la canción está dirigido exclusivamente a estudiantes de Telecomunicaciones, ingenieros de ídem o a cualquiera que tenga unos conocimientos básicos (universitarios) sobre señales y sistemas. Vamos con Payán, todos a la vez a buscar con ahínco un sistema de transmisión. Sin duda será, convencido estoy, lineal, invariante y sin distorsión. Este mundo es como un filtro ideal donde hay escondido un suspenso en él. Como un filtro multicolor con un cero de transmisión, como una variable aleatoria con toda su gran inversión, el proceso empieza ahora, ¡vamos a filtrar, filtrar, filtrar, filtrar, filtrar! Hallaremos su covarianza y también su correlación, con la respuesta al impulso hallaremos convolución, el filtro sin distorsión será al fin nuestro, oh. Integrémoslo por Fourier, unidos a Gauss no hay que temer pues tenemos el DSP, ¡que no sirve p

Be a pointer, my friend

Empty your memory, with a free()… like a pointer! If you cast a pointer to a integer, it becomes the integer... if you cast a pointer to a struct, it becomes the struct... The pointer can crash..., and can Overflow… Be a pointer, my friend...