Título: Problema con pointer string Publicado por: usualp en 20 Diciembre 2022, 19:18 pm Hola como estan
el nombre del juego es ao argentum, esta echo en vb6 utiliza paquetes de texto string como protocolo y estoy desarrollando un hack donde intercepto los datos que entran y salen lo hice con una guia que encontre de otro juego pero se me esta complicando obtener los send y recv los pointer Código
para obtener el send estoy abriendo la app con ollydbg y al loguearme el breakpoint me lo marca perfecto (https://imgur.com/fRb7leB) luego me marca el data buffer ahi debajo y hasta aqui llego no logro obtener ese pointer estatico que seria el dato que necesito para hacerlo funcionar y empezar a modificar los paquetes que envia (https://i.imgur.com/uphCxD0.png) lo mismo para el recibir los datos llego hasta esa parte y no se como proseguir no obtengo nada que me sirva alguien puede ayudarme? (https://i.imgur.com/BkQUipY.png) (https://i.imgur.com/2ba0KVy.png) Título: Re: Problema con pointer string Publicado por: BloodSharp en 20 Diciembre 2022, 20:57 pm lo hice con una guia que encontre de otro juego pero se me esta complicando obtener los send y recv los pointer Por lo que ví estás definiendo mal los punteros y las funciones hookeadas, cuando deberían ser algo como lo siguiente según Microsoft: Código
Código
No sé acerca de ni conozco ni sé para que sirve rtcDoEvents. ¿Pero el resto de las funciones hacia donde apuntan? B# Título: Re: Problema con pointer string Publicado por: usualp en 20 Diciembre 2022, 21:17 pm el codigo utiliza libreria vieja
https://github.com/Raagh/AOR.furius este es el codigo, no logro obtener los pointer de send y recv, intente con ollydbg pero no he podido alguna sugerencia? Título: Re: Problema con pointer string Publicado por: BloodSharp en 20 Diciembre 2022, 21:48 pm no logro obtener los pointer de send y recv, intente con ollydbg pero no he podido alguna sugerencia? Revisando un cliente del Argentum open source acabé de encontrar la supuesta función que querés hookear: https://github.com/ao-libre/ao-cliente/blob/24e39b034c282ae66b935bbdb2982898007f8c0c/CODIGO/Red/clsSocket.cls#L1139 El tema es que revisando ese código la función parece que copia de un buffer los datos a lo que supongo que es una función llamada arrData, que de nuevo supongo este devuelve el puntero a la dirección de memoria del buffer a enviar... Viendo como termina dicha función llama a SendBufferedData que verifica si el socket es TCP o UDP y llama a su respectiva función para enviar datos: https://github.com/ao-libre/ao-cliente/blob/24e39b034c282ae66b935bbdb2982898007f8c0c/CODIGO/Red/clsSocket.cls#L1260-L1276 Para finalizar llama si es UDP a api_sendto o si es TCP llama a api_send las cuales son alias de sendto y send respectivamente: https://github.com/ao-libre/ao-cliente/blob/24e39b034c282ae66b935bbdb2982898007f8c0c/CODIGO/Red/clsSocket.cls#L32-L33 Resumiendo, no creo que puedas hookear directamente las APIs SendData con excepción a que encuentres de alguna manera mediante alguna firma la función en tiempo de ejecución, esto asumiendo a que el juego esté compilado en Native-Code. Podrías intentar hookeando como mencioné anteriormente send y sendto y ver si el puntero del buffer se puede modificar desde ahí. Y como mencioné anteriormente, podés buscar las referencias de las definiciones en la página learn.microsoft.com EDIT: para recibir los datos hay referencias a la función recv y recvfrom: https://github.com/ao-libre/ao-cliente/blob/24e39b034c282ae66b935bbdb2982898007f8c0c/CODIGO/Red/clsSocket.cls#L36-L37 B# Título: Re: Problema con pointer string Publicado por: usualp en 20 Diciembre 2022, 21:53 pm usa tcp
en verdad ese codigo que pusiste de argentum utiliza protocolo binario este utiliza formato de texto recibe paquetes tipo "pain" como el que publique teoricamente ese codigo estaba funcionando en un servidor llamado furiusao Título: Re: Problema con pointer string Publicado por: BloodSharp en 20 Diciembre 2022, 22:07 pm usa tcp Sea como fuese, sería conveniente hookear las 4 funciones de conexión que mencioné anteriormente por si las dudas...en verdad ese codigo que pusiste de argentum utiliza protocolo binario Teoricamente, ¿Pero pudiste al menos interceptar los paquetes al menos para verificarlo? Digo, porque si hablamos en teoricamente eso pudo haber cambiado en los últimos 4 años.este utiliza formato de texto recibe paquetes tipo "pain" como el que publique teoricamente ese codigo estaba funcionando en un servidor llamado furiusao B# Título: Re: Problema con pointer string Publicado por: usualp en 20 Diciembre 2022, 22:26 pm me refiero a que funciona el metodo porque lo estan usando, probablemente los packets hayan cambiado
solo me interesa la lectura, pero no entiendo como se obtienen esos pointer de send y recv que marca en el codigo |