Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: igustin10 en 24 Junio 2018, 07:16 am



Título: lectura de paquetes
Publicado por: igustin10 en 24 Junio 2018, 07:16 am
Buenas como andan?

Hace un tiempo hice un "cheat" para un juego llamado Argentum Online primero comenze viendo el color de los pixeles y mandando teclas, luego lo actualize a leer address y mandar teclas y ahora quiero trabajar con paquetes e inyectar una dll en el cliente para que al recibir cierto paquete envie otro.

No quiero que nadie me haga nada, solo quiero que me guien para yo poder aprender y hacerlo pero voy a necesitar su ayuda (que son expertos) para que me guien por el camino correcto. He comenzado capturando paquetes del servidor proveniente pero no entiendo como puedo hacer para leerlos (estos por mas que se realice la misma acción cambian). Aca les dejo un ejemplo del contenido de cada uno:

PAQUETE UNO:
En binario:
0000  00010110 10011000 01111101 00110001 01010111 01010000 10010000 11110110   ..}1WP..
0008  01010010 00010111 01100100 01001111 00001000 00000000 01000101 00000000   R.dO..E.
0010  00000000 00101001 00101111 01100001 01000000 00000000 10000000 00000110   .)/a@...
0018  10100011 11010001 11000000 10101000 00000000 01111101 10100111 01110010   .....}.r
0020  10111111 00000100 11000011 01101100 00011110 11011101 11001101 10011111   ...l....
0028  11111110 11000100 01111000 01011011 01001111 01100010 01010000 00011000   ..x[ObP.
0030  00111110 11111001 11011111 11001000 00000000 00000000 11110011                  >......
En hexa:
0000  16 98 7d 31 57 50 90 f6  52 17 64 4f 08 00 45 00   ..}1WP.. R.dO..E.
0010  00 29 2f 61 40 00 80 06  a3 d1 c0 a8 00 7d a7 72   .)/a@... .....}.r
0020  bf 04 c3 6c 1e dd cd 9f  fe c4 78 5b 4f 62 50 18      ...l.... ..x[ObP.
0030  3e f9 df c8 00 00 f3                                              >......      
Contenido Data: 31


PAQUETE DOS:
En binario:
0000  00010110 10011000 01111101 00110001 01010111 01010000 10010000 11110110   ..}1WP..
0008  01010010 00010111 01100100 01001111 00001000 00000000 01000101 00000000   R.dO..E.
0010  00000000 00101001 00101111 01100001 01000000 00000000 10000000 00000110   .)/a@...
0018  10100011 11010001 11000000 10101000 00000000 01111101 10100111 01110010   .....}.r
0020  10111111 00000100 11000011 01101100 00011110 11011101 11001101 10011111   ...l....
0028  11111110 11000100 01111000 01011011 01001111 01100010 01010000 00011000   ..x[ObP.
0030  00111110 11111001 11011111 11001000 00000000 00000000 11110011                  >......
En hexa:
0000  16 98 7d 31 57 50 90 f6  52 17 64 4f 08 00 45 00   ..}1WP.. R.dO..E.
0010  00 29 2f 61 40 00 80 06  a3 d1 c0 a8 00 7d a7 72   .)/a@... .....}.r
0020  bf 04 c3 6c 1e dd cd 9f  fe c4 78 5b 4f 62 50 18      ...l.... ..x[ObP.
0030  3e f9 df c8 00 00 f3                                              >......      
Contenido Data: F3

Desde ya, muchas gracias por tomarte el tiempo para leer este post.


Título: Re: LECTURA DE PAQUETES
Publicado por: engel lex en 24 Junio 2018, 21:02 pm
cuando se trabaja con servidores usualmente se usan tecnicas apra evitar la repetición de paquetes,

1- porque evita que hayan errores por duplicación de la trama
2- para evitar que el jugador aproveche de reenviarlos
3- para espantar a quien intente analizarlos


entonces, primero tienes que entender como funciona un juego y que envía, sin esto, estarás perdido y basicamente la forma es incluirte en algún proyecto y/o leer codigos fuente, luego tienes que saber si el juego cifra datos o no, por ultimo tienes que entender el formato de los paquetes, ya que cualquier los organiza como quiere en su programa, no hay un gran standard

la forma más simple es hacer ingeniería inversa y auditar la sección del código que genera los paquetes, en este punto tendrías la información organizada y no cifrada...

 


Título: Re: lectura de paquetes
Publicado por: igustin10 en 25 Junio 2018, 05:30 am
Muchas gracias por tu respuesta. Tiene todo el sentido las tres respuestas que me diste y entiendo cada una de ellas.

El juego comprendo como funciona y entiendo que envia (que paquete es cada uno). Estoy dispuesto a leer códigos fuentes de otras versiones pero no entiendo para que me va a ser util. Si, el juego esta cifrado. Con respecto al formato de los paquetes, como puedo hacer para entenderlos?

Comprendo perfectamente la idea de tener la informacion organizada y no cifrada, esto se relaciona con el formato de los paquetes?

Desde ya muchas gracias y quisiera saber que debo leer o por donde comenzar para estudiar y de a poco solucionar estos problemas.

Saludos


Título: Re: lectura de paquetes
Publicado por: engel lex en 25 Junio 2018, 05:47 am
Citar
Estoy dispuesto a leer códigos fuentes de otras versiones pero no entiendo para que me va a ser util.

tener el conocimiento relacionado realmente

Citar
Si, el juego esta cifrado. Con respecto al formato de los paquetes, como puedo hacer para entenderlos?

como te dije

Citar
la forma más simple es hacer ingeniería inversa y auditar la sección del código que genera los paquetes

ya que es dificil descifrarlos, es preferible atacarlos previo al cifrado

Citar
esto se relaciona con el formato de los paquetes?

claro, en el codigo podrías intentar seguir de donde proviene cada sección y qué representa


Citar
Desde ya muchas gracias y quisiera saber que debo leer o por donde comenzar para estudiar y de a poco solucionar estos problemas.

por un lado como aplicar ingeniería inversa (puedes empezar desde crackmes y luego comprender como funciona el api hooking, y revisar secciones de ram "en vivo"

para esto es bueno tener un codigo que puedas compilar y probar por tu cuenta


Título: Re: lectura de paquetes
Publicado por: igustin10 en 25 Junio 2018, 10:06 am
Te agradezco por tu respuesta, me voy a poner a estudiar y practicar mas con los cracksme y de a poco ir extendiendome en el tema.

Muchas gracias por tu tiempo.

Saludos