Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo interceptar paquetes de datos en wpe1.0

Cómo interceptar paquetes de datos en wpe1.0

Tres: ¿Cómo analizar los paquetes de datos que interceptamos?

Primero, guardamos el paquete de datos interceptado por WPE como un archivo de texto y luego lo abrimos. En este momento, verá los siguientes datos (aquí usamos los datos enviados por el cliente PK Shopkeeper). Los datos de "La Edad de Oro de la Caballería" se utilizan como ejemplo para la explicación):

Primer archivo: SEND-gt; ; 0010 17 12 DD 34 12 12 0000 E6 56 02 C8 13 C9 7E 6B E4 17 10 35 27 13 12 12SEND-gt; 33 68 47 1B 0E 81 72 76 76 77 76 76 02 7ESEND -gt 0010 72 77 07 1C 77 77 77 77 72 77 77 77 6DSEND-gt; 77 5E 6B 72 F3ENVIAR-gt; 0000 83 33 7E A5 21 77 7 7 77 3FSEND-gt;0000 83 33 67 AD 76 CF 1B 0E 81 72 75 50 42 76 77 77SEND-gt 0000 83 33 72 AC 77

Encontramos que El formato de datos de los dos comerciantes de PK era el mismo, pero el contenido era diferente. Estamos haciendo PK con el mismo NPC, ¿por qué es diferente? Resulta que los paquetes de datos de "La edad de oro de la caballería" están cifrados antes de transmitirse a través de la red, por lo que el problema que enfrentamos es cómo descifrar el texto cifrado en texto plano y luego analizarlo.

Debido a que el cifrado general de paquetes de datos es una operación XOR, aquí primero presentamos qué es XOR. En pocas palabras, XOR significa "lo mismo es 0, lo diferente es 1" (esto es para bits binarios), por ejemplo, 0001 y 0010 son XOR, obtenemos el resultado XOR 0011 mediante comparación bit a bit, calculamos El método es: el cuarto bit de 0001 es 0, el cuarto bit de 0010 es 0, son iguales, el cuarto bit del resultado XOR se ajusta al principio de "lo mismo es 0, diferente es 1". El tercer bit de 0001 es 0, el tercer bit de 0010 es 0, el tercer bit del resultado es 0, el segundo bit de 0001 es 0, el segundo bit de 0010 es 1, el segundo bit del resultado es 1, 0001 El primer bit es 1, el primer bit de 0010 es 0, el primer bit del resultado es 1 y la combinación de estos dos bits es 0011. Hay muchos con los que todo el mundo puede estar familiarizado y un análisis competente es muy útil.

A continuación, continuamos mirando los dos archivos anteriores. Según el sentido común, los datos en el paquete de datos no tendrán ningún valor durante el desarrollo del juego, y se reservará algo de espacio para futuras expansiones. Es decir, habrá algunos "00" bytes en el paquete. Si observamos los archivos anteriores, encontraremos que hay muchos "12" en el archivo uno y muchos "77" en el archivo dos. esto no significa de lo que estamos hablando.

¿Significa esto que estamos hablando de "00"? Con eso en mente, ¡comencemos!

Usaremos el archivo 1 para que sea isomorfo a "12" y el archivo 2 para que sea isomorfo a "77". Por supuesto, el cálculo manual es muy difícil. Usamos "M2M 1.0 más herramienta de análisis de paquetes sellados". para calcularlo. Mucho más conveniente.

Primer archivo: 1 SEND-gt; 0000 F4 44 1F 30 6C 79 F6 05 01 01 00 01 00 01 01 75 09SEND-gt; 00 00 00 00 892 ENVIAR-gt; 0000 F4 44 0C E3 3B 13 05 00 29 1C 05 083 ENVIAR-gt 0000 F4 44 10 DA 0 1 DB 6C 0000 F4 44 10 DA 01 B8 6C 79 F6 05 02 27 35 01 00 005 SEND-gt; 0000 F4 44 05 DB 00

Ja, estos dos archivos son básicamente iguales. ¡Esto muestra que nuestro razonamiento es correcto y lo anterior es el texto sin formato que necesitamos!

El siguiente paso es descubrir el significado de algunas palabras clave, lo que requiere interceptar una gran cantidad de datos para su análisis.

Primero veremos que cada paquete comienza con "F4 44", y el tercer byte no es fijo, sino muy regular. Miremos la longitud de cada paquete y veamos qué encontramos. Así es, ¡el tercer byte es la longitud del paquete de datos! Al interceptar una gran cantidad de paquetes, determinamos que el cuarto byte representa un comando, donde el cliente le dice al servidor qué hacer. Por ejemplo, una solicitud de comando de combate al servidor es "30", un comando de movimiento en combate es "D4", y así sucesivamente. A continuación, debemos analizar el primer paquete anterior "F4 44 1F 30 6C 79 F6 05 01 01 00 01 00 01 00 01 75 09 05 00 CF 26 00 00 00 05 00 1C 00 00 00 89", en este ¿Qué información es? incluido en el paquete? El servidor debería notificarte qué NPC fue PKed, así que primero averigüemos dónde está el código del comerciante. Luego hacemos PK con un tipo pequeño (es decir, el que cloquea afuera del Dali Inn): SEND-gt; 19 00 00 00 00 11 00 02 00 00 00 C0 Analicemos según el sentido común del juego. Aunque los tipos de NPC no excederán los 65535 (FFFF), no se limitarán al rango de palabras durante el desarrollo, lo cual no es propicio. a la expansión del juego, así que veamos las palabras dobles. Al comparar los paquetes de "Shopkeeper" y "Xiaobing", nuestro objetivo es "6C 79 F6 05" y "CF 26 00 00".

(Es fácil de comparar, pero no puedes ser demasiado lento, jaja) Miremos la parte posterior del paquete. Debería haber códigos NPC en la parte posterior del paquete, como mover el paquete si el juego permite la observación. el servidor necesita conocer las coordenadas de movimiento del NPC y luego transmitirlas a otros jugadores que miran el juego. En "SEND-gt; 0000 F4 44 10 DA 01 DB 6C 79 F6 05 02 27 35 01 00 00" detrás del cuarto paquete, vimos "6C 79 F6 05", e inicialmente concluimos que el código del propietario de la tienda era ese. ! (Este análisis implica mucho trabajo, puede usar WPE para interceptar los datos y analizarlos usted mismo)

El análisis del primer paquete de datos termina aquí (todavía hay información que no necesitamos lo entiendo completamente por el momento)

Echemos un vistazo al cuarto paquete "SEND-gt; 0000 F4 44 10 DA 01 DB 6C 79 F6 05 02 27 35 01 00 00", podemos ver " 6C 79 F6 05 02 27 35 01 00 00". 35 01 00 00", y luego interceptar el paquete del PK perrito amarillo, (saldrán dos perritos amarillos) y mirar el formato del paquete: SEND-gt; 0000 F4 44 1A DA 02 0B 4B 7D F6 05 02 27 35 01 00SEND-gt; 0010 EB 03 F8 05 02 27 36 01 00 00

Según el análisis anterior el código del perrito amarillo es "4B 7D F6 05" (100040011). , pero ¿cómo distinguir los dos perritos amarillos? ¿Qué pasa con el servidor? Mire "EB 03 F8 05" (100140011), que es el último código más 100000. Jaja, el servidor puede identificar los dos perritos amarillos más tarde. Lo confirmamos interceptando los paquetes de datos del enemigo en la naturaleza. Esto es cierto.

Entonces, el formato de este paquete de datos debe ser relativamente claro: el tercer byte es la longitud del paquete de datos. , "DA" es el comando y el quinto byte es la cantidad de NPC. Los 10 bytes a partir del séptimo byte representan la información de un NPC. Más de un NPC debe estar representado por más de 10 bytes.

Los amigos que han jugado juegos en línea deben saberlo. Los enemigos encontrados por casualidad a veces tendrán refuerzos en el juego para hacer que aparezcan refuerzos en cada batalla. Luego, usemos tecnología de agente único para engañar al cliente y. servidor

Está bien, el trabajo de llamar a NPC es solo una pequeña parte. A continuación, continuaremos explicando cómo modificar el paquete de datos y enviar el paquete de datos en la siguiente sección.