Una utilidad para obtener los secretos codificados dentro del cliente Transformice.
Para construir, debe usar el archivo asconfig.json para compilar el archivo TFMSecretsLeaker.swf . Esto se puede hacer con VScode-AS3MXML o ASCONFIGC.
También deberá colocar los archivos SWC para las siguientes bibliotecas en una carpeta lib al mismo nivel que el archivo asconfig.json :
Si desea ahorrar la molestia, entonces también hay un SWF preconstruido en los lanzamientos de este repositorio.
Al ejecutar el archivo SWF construido, trace los secretos obtenidos. Estos se pueden ver en algo como FFDEC, aunque también se proporciona un script leak-secrets.py útil.
./leak-secrets.py <path/to/TFMSecretsLeaker.swf>
Al ejecutar el SWF, aparecerá una ventana por un breve momento, parece comenzar a cargar el juego y luego salir. Esto es normal.
Desafortunadamente, esto no es actualmente compatible con la volcencia, ya que actualmente no implementa fscommand("quit") .
El protocolo de red de Transformice utiliza varios secretos codificados y que cambian con frecuencia que están contenidos dentro del cliente. Cada cinco minutos más o menos, se sirve un SWF principal diferente para el juego, cambiando la mayoría de estos secretos codificados. Por lo tanto, se requiere tener una utilidad dinámica para obtener estos secretos automáticamente, ya que cambian con demasiada frecuencia para obtener manualmente.
Estos secretos incluyen:
1.740 . La versión del juego que esto informa es el componente 740 de eso, y se envía en el paquete de apretón de manos que el cliente envía al servidor. Esto no cambia tan a menudo como lo hacen los otros secretos.Poco después de que el cliente y el servidor hayan completado la secuencia del apretón de manos, el servidor enviará un paquete al cliente para asegurarse de que el cliente sea oficial y de otra manera apropiado (es decir, no es un bot). Este paquete contiene un "token de verificación" (un entero) que el cliente usará en su respuesta. El cliente responderá con un paquete cifrado utilizando el algoritmo XXTEA con el token de verificación convertido a una cadena como el nombre de la clave. Los datos del paquete (de texto sin formato) comenzarán con el token de verificación, y luego algunos campos semi-aleatorios codificados, con el token de verificación nuevamente en medio de él. Esto no parece cambiar tan a menudo como lo hacen los otros secretos, pero sí cambia.
Lo que estos informes es una cadena hexadecimal que representa una cadena de bytes del cuerpo de texto sin formato de este paquete (en Python, algo en lo que podría usar bytes.fromhex . En lugar de hacia dónde debe ir el token de verificación, se usa aabbccdd y debe reemplazarse con el token de verificación reemplaza.
Otros juegos de Atelier 801 tienen estructuras muy similares para transformar, por lo que esta utilidad también puede admitir los siguientes juegos:
Transformice y Dead Maze son los únicos juegos que tienen plantillas de verificación del cliente. Y así para los demás, no se trazará ninguna plantilla de verificación del cliente.
Para obtener los secretos a un juego en particular, su nombre debe suministrarse al parámetro del cargador game . Por ejemplo, así es como lo haría usando el script leak-secrets.py :
./leak-secrets.py path/to/TFMSecretsLeaker.swf?game=transformice
./leak-secrets.py path/to/TFMSecretsLeaker.swf?game=deadmaze
./leak-secrets.py path/to/TFMSecretsLeaker.swf?game=bouboum
./leak-secrets.py path/to/TFMSecretsLeaker.swf?game=nekodancer
./leak-secrets.py path/to/TFMSecretsLeaker.swf?game=fortoresse
Si no se suministra un parámetro game , la utilidad debe ser predeterminada a los secretos de Transformice.