según creo wii usa linux en el modo opera (almenos tiene los mismos errores de implementación de la pila tcp/ip y se comporta de igual manera con algunos exploits bluetooth) por lo cual si es cierto lo que creo, cualquiera con conocimientos básicos de explotación de bof y ensamblador de ppc puede explotarlo.
La wii no usa linux. Eso fue un bulo que anduvo hace tiempo, usa un sistema propietario de nintendo. Otra cosa es que hayan portado el ópera al wii, con sus virtudes y sus defectos.
Pero cómo (y dónde) vas a meter el código (ensamblador ppc) para que se ejecute? Cómo metes código en la pila? Suponiendo que puedas meter un jump a otra zona de memoria...
Te lo voy a contar de memoria y "muy rápido" una forma de aprovechar un stack overflow, así que seguro que tengo muchos errores, que alguien que sepa más me corrija:
- Cuando haces una llamada a una función, los parámetros que le pasas se copian en la pila, más la dirección de retorno.
- Si le pasas parámetros que no concuerdan, puedes llegar a sobreescribir la dirección de retorno, haciendo que cuando acabe esa función retorne al punto del programa que te de la gana (bueno, lo que hayas sobreescrito en la pila).
- Al fin y al cabo, los datos en memoria pueden ser instrucciones o datos en sí, por lo que si has conseguido introducir el código que quieres ejecutar en memoria (vale no se los pasos exactos para hacer eso aprobechando el fallo en el flash), únicamente sería sobreescribir la dirección de retorno con la dirección donde empiece nuestro código.
Hay muchas funciones de C, que se pueden aprobechar para este tipo de errores, la mayoría "deprecated". Sin ir mas lejos creo que con versiones antiguas de scanf se podía (o con una función muy parecida, para leer de consola).
¿Qué pasa con la encriptación? Hasta lo que se sabe (que no es mucho, al menos por mi parte), sólo debería afectar al código que está en la memoria flash. El flash player del ópera se ejecuta en memoria principal, y ahí es donde están todos los datos que le pases através del fichero flv. Aprobechando ese bug, puedes pasar datos desde el flv ( que podría ser el código que quieres ejecutar) a memoria principal, y luego dar el salto a ese código. Si desde memoria principal no es necesario que el código esté encriptado, chachi. Si no, a seguir buscando.
Si recuerdas el pantallazo que se colocó dos páginas atrás, decía que los datos eran "demasiado grandes", y no se colgaba. Eso es debido a que han solucionado el problema, evitando que se le pasen datos que no concuerden con la cabecera y que provocarían el desbordamiento de la pila.
Un saludo