Crack del algoritmo de firma de datos de caza menor Cocos2dx

Haga clic arriba palabra azul [ análisis y restauración del protocolo ] para seguirnos


"  Descifre rápidamente el algoritmo de firma de datos común de los juegos pequeños " .

Recientemente, estoy analizando los protocolos de varios juegos pequeños. Este artículo usa el juego pequeño "No soy Wushuang" como ejemplo para presentar el método de análisis de tales juegos pequeños.

01

bolsa de mano

Al comienzo del análisis, está claro que el propósito del análisis es aprender el algoritmo del protocolo de red de este juego. Por supuesto, el análisis del protocolo comienza con la captura de paquetes, que es muy fácil. Capturamos el tráfico del protocolo. paquetes, de la siguiente manera:

POST https://light-wbsws.ohayoo.cn/102 HTTP/1.1
Accept-Encoding: identity
Content-Type: application/json;charset=UTF-8
User-Agent: 协议分析与还原
Host: light-wbsws.ohayoo.cn
Connection: Keep-Alive
Content-Length: 182


{"platform":"jrtt","openId":"ProtoSec","time":1614995503,"version":3,"sig1":"555555555555555?0CQEGKL@5UEA?O1O2VVXWSNBH1BK34UWUJTO./","sig":"aaaaaaaaaabd920d9c329251d4bc4a81"}

Un simple análisis muestra que existen dos valores sig1 y sig, que se utilizan para verificar las características de los datos, entonces queda más claro nuestro objetivo, que es analizar el algoritmo de generación de estos dos valores.

02


deshacer

Para analizar el algoritmo de generación del valor de verificación, por supuesto, debe descomprimirlo. Descomprima el apk, y es fácil saber que este juego está desarrollado usando cocos2d. Abra el directorio de activos y podrá ver el archivo jsc:

Abra jsc y eche un vistazo, no es del tipo compilado por spidermonkey. Por supuesto, hay libcocos2djs.so en el directorio lib. No hay duda de que la lógica de implementación del juego está en jsc. Descifre jsc y obtenga el original js para encontrar la implementación del algoritmo de firma up.

03


análisis de gancho

Este tipo de archivo jsc cifrado se descifrará en js cuando se abra la aplicación. Este proceso se completa en libcocos2djs.so, por lo que el algoritmo se puede encontrar analizando este archivo.

En términos generales, el método de encriptación de los archivos jsc en la mayoría de los juegos es xxtea, y muchas claves están codificadas de forma rígida, por lo que en muchos casos, puede usar herramientas directamente para exportar cadenas integradas y luego encontrar la posición fija para obtener la cadena de clave.

Aquí es un poco más complicado, y se presenta el método más general, que es gancho.Primero, usamos IDA para abrirlo, y podemos encontrar fácilmente la ubicación de la función de descifrado de xxtea:

Abra la función xxtea_decrypt:

Anote la dirección y, de paso, mire el pseudocódigo de la función para determinar los parámetros de la función que queremos verificar:

Usamos Frida para enlazar, de acuerdo con la dirección y los parámetros de la función, escribirla y ejecutarla, y obtener el resultado fácilmente:

Los seis bytes de arg2 son la clave xxtea. Use la herramienta de descifrado jsc para desbloquearlo y obtendrá el archivo js original:

Generalmente la lógica de este tipo de pequeños juegos está básicamente en index.js, y se puede analizar según las necesidades, como ves, la lógica es muy completa:

04


algoritmo

Después de obtener el archivo js original, el análisis posterior básicamente no es difícil. Por supuesto, a veces, después de todo, es común que el código sea incomprensible.

Al leer el código, es fácil obtener el algoritmo de las dos firmas de Wushuang.

sig1 es una codificación de cadena (deviceid, time) y el valor obtenido al agregar time.

Y sig es un valor md5 que incluye plataforma, openId, versión, datos, clientVersion, sig1, etc., e incluye un valor salt (para obtener ProtoSec), que ahora es básicamente una operación de rutina.

Si está interesado, puede analizarlo usted mismo, y no lo escribiré en detalle aquí.

05


Finalizar

El análisis de este tipo de juego encriptado jsc está escrito aquí. Este es un método de análisis relativamente común para este tipo de juego. No es muy difícil, y hablaremos de algunos más difíciles.

Si quieres descifrar y analizar este tipo de juegos, ven aquí, debes tener razón, todos comunican más.

No olvides hacer clic en "Buscando", "Me gusta" y "Compartir"

La nueva regla, para recibir tuits a tiempo, primero debes destacar la cuenta oficial

No olvides destacar o te lo perderás

Mantenga presionado para seguir y comunicarse todo el tiempo.

Supongo que te gusta

Origin blog.csdn.net/yeyiqun/article/details/115743710
Recomendado
Clasificación