Explicación técnica del exploit USB

En construcción.png

Este artículo está en construcción.

Por esta razón, seguramente habrá lagunas en el contenido o en el formato. Por favor, antes de cambiar el contenido, consulta la página de discusión del artículo.

El estilo de este artículo debe ser mejorado.

El artículo no sigue completamente las convenciones de estilo.


El exploit USB al que nos referimos es el exploit que aprovechan todos los USB Jig como PSJailbreak, PS3Break, PS3Key y derivados.

El exploit se basa en un Buffer Overflow, es decir, un desbordamiento del Buffer.

¿Qué es un desbordamiento del Buffer?

Poniendo como ejemplo el Twilight Hack de Wii (Tambien podria usarse como ejemplo el Exploit TIFF que permitia el downgrade de PSP en el firmware 2.00) se explicará el método;

Un Buffer Overflow, es, a grandes rasgos, saturar una cadena de caracteres, es decir, escribir mas de lo permitido (En el Twilight Hack, la cadena de caracteres era el nombre de Epona), una vez hecho esto, se "hincha" de caracteres esa cadena hasta escribir en una parte de la memoria.

Una vez que se alcanza una parte reservada de la memoria, se escribe allí código ejecutable.

(En el Twilight Hack se aprovecha el nombre de Epona, modificable por el usuario, y que se guarda en el savegame, una vez que arrancamos la partida, cuando la consola intenta leer el nombre que le hemos asignado a Epona carga el nombre completo, lee el nombre de Epona y todo lo demás, de forma que escribe código ejecutable en la memoria de la consola.

Un desbordamiento del buffer puede evitarse comprobando la longitud de la cadena de caracteres a cargar.


¿En qué parte de la consola se encuentra un Buffer Overflow?

Puede encontrarse en cualquier sitio, juegos incluidos, el problema en este caso es que, aunque aprovechemos el exploit, el HyperVisor sigue vigilando lo que pasa en la consola.

Para que el Buffer Overflow fuese aprovechable, y pasase de ser un bug a un exploit, hace falta que se encontrase en un nivel de privilegios superior al HyperVisor. En este caso, el exploit se encuentra en en módulo SPM (System Policy Manager, en español el Gestor de Políticas del Sistema), dicho módulo se encuentra en el LV1 (Nivel 1) de privilegios, es decir, el mismo que el HyperVisor (El HyperVisor solo puede controlar lo que ocurre por debajo de su nivel)