Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: Nashi en 21 Agosto 2014, 10:51 am



Título: ¿Paquetes cifrados en WPE Pro?
Publicado por: Nashi en 21 Agosto 2014, 10:51 am
Buenas, he seguido un manual en este foro sobre hacking de juegos online con WPE Pro. He decidido hacer lo mismo, pero en un juego bastante mas complicado que en que lo explican, creo yo, y el problema es que en los paquetes no lo deduce tan bien, sino que aparecen puntos, números y alguna letra, cosa que nosé si estará cifrado o algo pero no se puede deducir nada de esos mensajes. Hay alguna manera de descifrar o algo para hacer-los mas deducibles?? como aparece en las explicaciones... porque en la manera que aparece no se entiende nada.
Saludos


Título: Re:
Publicado por: ivancea96 en 21 Agosto 2014, 12:38 pm
Los envíos de datos no tienen por qué ser en texto plano. Cada byte es un número, no una letra, y cada número puede representar un valor. Puede estae cifrado, y puede no estarlo. Los datos que se envían no son para que los lean las personas, sinó los clientes y servidores.


Título: Re: ¿Paquetes cifrados en WPE Pro?
Publicado por: Nashi en 21 Agosto 2014, 14:33 pm
Si pero en el caso explicado que vi, los mensajes de send y recv podrias deducir un poco a que se referían en el juego y entoces hacer la "dll", en cambio, en mi caso no puedo deducir nada y al programar la "dll" no se que poner para que se refiera a lo que yo quiero.


Título: Re: ¿Paquetes cifrados en WPE Pro?
Publicado por: Høl¥ en 21 Agosto 2014, 14:59 pm
Mmm podrías probar a realizar cosas que impliquen packets en los que pienses que debería haber cadenas de texto, en un juego deberías poder encontrar nombres de otros jugadores, de monstruos, npcs y demás. Otro ejemplo es el login, ahí se debe enviar tu nombre de usuario y debe ser visible, si no lo puedes ver es que debe estar cifrado.

Si están verdaderamente cifrados, puedes poner un breakpoint en las típicas funciones de las cuales ya has mencionado dos de ellas send y recv, en algunos casos se utilizan otras como WSASend/WSARecv y ver con un debugger que es lo que ocurre justo antes de enviar/recibir los packets.


Título: Re: ¿Paquetes cifrados en WPE Pro?
Publicado por: Nashi en 21 Agosto 2014, 22:02 pm
Holy, he abierto el OllyDbg y el juego, le di "attach" y se me abrio las instrucciones y todo eso del programa. Busque la función "send" y le puse un "BreakPoint". Entoces a la ventana de abajo a la derecha vi de de que dirección venia y fu a ella. No se si a eso te referías, tengo una captura de pantalla pero no se ponerla aqui.


Título: Re: ¿Paquetes cifrados en WPE Pro?
Publicado por: Høl¥ en 21 Agosto 2014, 23:52 pm
Sí a eso me refería. De esa forma deberías llegar a algo parecido a esto (no igual exactamente los parámetros pueden variar y las direcciones ya que no es el mismo programa).

Código:
007ADC99  |. 6A 00          |PUSH 0                                  ; /Flags = 0
007ADC9B  |. 8B45 F8        |MOV EAX,DWORD PTR SS:[EBP-8]            ; |
007ADC9E  |. 50             |PUSH EAX                                ; |DataSize
007ADC9F  |. 8B4D 08        |MOV ECX,DWORD PTR SS:[EBP+8]            ; |
007ADCA2  |. 51             |PUSH ECX                                ; |Data
007ADCA3  |. 8B55 FC        |MOV EDX,DWORD PTR SS:[EBP-4]            ; |
007ADCA6  |. 8B82 E8000100  |MOV EAX,DWORD PTR DS:[EDX+100E8]        ; |
007ADCAC  |. 8B48 58        |MOV ECX,DWORD PTR DS:[EAX+58]           ; |
007ADCAF  |. 51             |PUSH ECX                                ; |Socket
007ADCB0  |. FF15 24177F00  |CALL DWORD PTR DS:[<&WS2_32.#19>]       ; \send

Aquí se hace la llamada a la función send que es la que envía el packet y en donde pone Data es donde está el packet osea este trozo:

Código:
007ADC9F  |. 8B4D 08        |MOV ECX,DWORD PTR SS:[EBP+8]            ; |
007ADCA2  |. 51             |PUSH ECX                                ; |Data

Y viene del registro ECX, que a su vez viene de [EBP+8]. Los [EBP+8], [EBP+C], [EBP+10], etc indican el primer, segundo y tercer parámetro respectivamente que se pasan a la función en la que ahora mismo estamos.

Ten en cuenta que lo que hay en ECX es un puntero al packet, para ver el packet puedes hacer click derecho en ECX y Follow in dump.

Entonces se podría buscar el inicio de esa función, generalmente empiezan por:

Código:
007ADC70  /$ 55             PUSH EBP
007ADC71  |. 8BEC           MOV EBP,ESP

Estoy suponiendo que el programa está hecho en C/C++ lo cuál no tiene que ser verdad, pero bueno la idea es esa rastrear ese valor y ver como se va modificando.




Título: Re: ¿Paquetes cifrados en WPE Pro?
Publicado por: ivancea96 en 22 Agosto 2014, 00:42 am
Tambien puedes probar a ver en los paquetes si alguna variable que tu conozcas (ej. vida de un personaje) está en ese paquete. En ASCII supongo que no, pero quizás sí en hexadecimal.


Título: Re: ¿Paquetes cifrados en WPE Pro?
Publicado por: wasom15 en 13 Abril 2015, 04:14 am
Hola, a todos tengo el mismo problema que usuario de aqui, e capturado algunos paquetes pero esto envia y recibe solo puntos "........" sin ningun formato, tambien comentan que modificando el codigo maquina del juego viendo la función de cifrado, pero pienso que si hago esto el servidor recibe el cifrado y lo decifra, en caso de que reciba el decifrado no podría pasar algo malo?

Aquí una imagen de los paquetes


también la función de login, no aparece solo puros ..... y el codigo hexadecimal tampoco quiere decir nada aun que ahi si cambia algunos valores cada vez que cambio el usuario.


(http://www.subeimagenes.com/img/sin-titulo-1281158.png)

http://www.subeimagenes.com/img/sin-titulo-1281158.png (http://www.subeimagenes.com/img/sin-titulo-1281158.png)


Título: Re: ¿Paquetes cifrados en WPE Pro?
Publicado por: MCKSys Argentina en 13 Abril 2015, 04:46 am
e capturado algunos paquetes pero esto envia y recibe solo puntos "........" sin ningun formato

En realidad no son "puntos". Los "puntos" son una forma de decirte que el caracter que está en esa posición no es imprimible.

tambien comentan que modificando el codigo maquina del juego viendo la función de cifrado, pero pienso que si hago esto el servidor recibe el cifrado y lo decifra, en caso de que reciba el decifrado no podría pasar algo malo?

La idea es que analices el código del juego y puedas interpretar las esctructuras de los paquetes. No, que envíes el paquete descifrado.

Necesitas analizar y entender qué hace el código para generar el paquete y así podrás interpretar su contendio.

Saludos!

PD: Con respecto a las imágenes: Si vas a "ocultar texto", también deberías ocultar la representación hexa del mismo... (impresionte, ChiChudA)  :silbar:


Título: Re: ¿Paquetes cifrados en WPE Pro?
Publicado por: wasom15 en 13 Abril 2015, 05:13 am
Y como lo puedo hacer imprimible en ese caso, con respeto a lo del login que no aparece los caracteres a como yo los escribo en la caja de texto del juego :s

y lo del hexadecimal oculto pues si  ;-) ;-)  :laugh:


Título: Re: ¿Paquetes cifrados en WPE Pro?
Publicado por: MCKSys Argentina en 13 Abril 2015, 05:21 am
Y como lo puedo hacer imprimible en ese caso

No tiene sentido hacer el caracter imprimible (eso ya lo hace la aplicación que estás usando). Lee lo que puse antes:

La idea es que analices el código del juego y puedas interpretar las estructuras de los paquetes.
Necesitas analizar y entender qué hace el código para generar el paquete y así podrás interpretar su contendio.

Saludos!