Como descomponer Pokemon GO con un Pidgey!

descomponer pokemon go con pidgey exploit

descomponer pokemon go con pidgey exploitCada día nos estamos cuestionando más y más la calidad del proceso de desarrollo que ha llevado Niantic, para Pokemon GO. Primero estuvo el tema de los servidores que se sobrecargaron a las pocas horas del lanzamiento, luego vino el tema de que el juego se pegaba en cualquier momento, luego el problema de las huellas del tracker que culminó con que quitaran la posibilidad de ver Pokemon cercanos en el juego, luego se atrasaron al lanzar el Pokemon GO Plus y una vez lanzado este dispositivo, de repente desapareció del mapa y de todas las tiendas.

Aún en este momento, si hay problemas de comunicación en el juego o sobrecargas de los servidores, siguen ocurriendo desastres como que el juego se pegue.

Pokemon GO, ha estado plagado de un montón de problemas que no deberían suceder en un lanzamiento de este tipo. Y hoy nos encontramos uno más, que verdaderamente nos pone a pensar. Ojo esta que descubrió nmagod de Reddit:

Como descomponer Pokemon GO con un Pidgey

Tomen su Pidgey favorito. Y cámbienle el nombre. Pero agréguenle un simple tag HTML al inicio. Por ejemplo hicimos la prueba con un bold y un italic:

descomponer pokemon go con pidgey exploit

Luego intenten transferirlo al profesor.

descomponer pokemon go con pidgey exploit

Acaban de descomponer a Pokemon GO!

Qué son todos esos <size 36> y <b> que apaerecen entre el texto de la ventana? Resulta que en lenguaje HTML los comandos van encerrados entre paréntesis triangulares. Al agregar un <b> o un <i> al nombre de un Pokemon, confundieron al juego y desarmaron la rutina de textos en la ventana. El juego procesa el nombre del Pokemon, ve el <b> y lo entiende como un comando HTML. Y lo trata de procesar. Pero el comando no tiene sentido, y causa un error que al final ocasiona que todo se caiga… y al final Pokemon GO tira un texto erróneo a la ventana, que es ese enredo de caracteres que ven.

Un error pequeño, que puede no ser tan pequeño

Que el usuario pueda hacer este tipo de cosas es la peor pesadilla de un desarrollador de software. Porque significa que el usuario tiene más control sobre el programa que el que debería tener. Este error demuestra que el usuario de Pokemon GO puede hablarle directamente a la parte interna del juego, y ocasionar que haga cosas que no debería hacer.

Por supuesto en este caso el error es una tontería. No hace mayor cosa que una ventana despliegue códigos erróneos entre el texto. Y mientras el juego no tenga que tratar con el nombre del Pidgey, pues, no sucederá nada.

Pero las implicaciones de esta pequeña prueba podrían ir más allá. Qué otros errores similares se podrían generar en el juego en otros puntos? Se podrían generar errores intencionalmente fuera de la cuenta del jugador? Por ejemplo usando algo así se podría descomponer un gimnasio o un pokestop?

Hace unos meses salió a la luz que había jugadores que estaban colocando huevos en los gimnasios… y como el huevo no era un Pokemon y no tenía CP, nadie podía derrotarlo ni batallarlo. Por lo que el gimnasio quedaba eternamente en posesión del dueño del huevo. Nunca salió a la luz cómo hacían para poner el huevo ahí, pero seguramente tenía que ver con un error similar en las rutinas del juego. En el lugar correcto, le hablaban directamente a las rutinas internas del juego, y lo engañaban.

Muchos ataques famosos a plataformas de Internet, que han generado verdaderos caos, empezaron con un simple error de este tipo. Alguien se dio cuenta que podía generar un error, y de ahí nació toda una cadena que terminó con una plataforma caída un montón de días.

Lo peor del caso, es que el error particular que mostramos en este post es uno de los más básicos, y de los que más se le advierte a los programadores que no deben permitir. Y Pokemon GO, lo permite.