elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Leer datos de un programa en ejecución
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Leer datos de un programa en ejecución  (Leído 7,482 veces)
samuelhm

Desconectado Desconectado

Mensajes: 28



Ver Perfil
Leer datos de un programa en ejecución
« en: 16 Noviembre 2012, 17:15 pm »

Como podria leer datos de un programa en ejecución? creo que es posible pero no encuentro documentación en español para ello.

Lo que quiero hacer, es el el software de pokerstars, cuando tienes una mesa abierta, poder recivir y guardar en variables el nombre, y tamaño de fichas de cada jugador.

Aunque seria mas interesante si se pudiera hacer sniffeando el puerto que usa para recivir los datos en este programa, para poder ejecutarlo en otro pc y hacerlo indetectable.

Un Saludo, y muchas gracias si alguien sabe donde puedo conseguir esta info.


En línea

darkangel2125

Desconectado Desconectado

Mensajes: 49


sudo apt-get moo


Ver Perfil
Re: Leer datos de un programa en ejecución
« Respuesta #1 en: 16 Noviembre 2012, 19:12 pm »

poker stars tiene una seguridad muy alta pero no imposible de romper, creo que tendras realizar captura de paquetes de datos con un programa snifer y descubrir el algoritmo y cifrado que tiene pokerstar
lo de almacenar los datos en variables tendras que diseñar un programa complejo para hacerlo despues de sacar el cifrado y el algoritmo que usa, algo que parece muy complicado si no sabes donde empezar
tendras que estudiar mucho antes de poder iniciar con tu plan


En línea

Dulce caos
samuelhm

Desconectado Desconectado

Mensajes: 28



Ver Perfil
Re: Leer datos de un programa en ejecución
« Respuesta #2 en: 16 Noviembre 2012, 19:16 pm »

Bueno, no tengo problemas ya que no necesito estar logueado, en vez de hacerlo sniffeando, seria mas facil hacerlo accediendo a la memoria que usa el programa, y buscar en que parte de la memoria se esta guardando estos valores y leerlos, he visto por el foro un chico que tiene un programa que saca datos de los ejecutables, pero no adjunta el codigo fuente.
En línea

samuelhm

Desconectado Desconectado

Mensajes: 28



Ver Perfil
Re: Leer datos de un programa en ejecución
« Respuesta #3 en: 16 Noviembre 2012, 19:17 pm »

El software lo tengo casi listo, solo necesito leer datos, a unas malas hago captura de pantalla y intento trabajar con alguna libreria que maneje imagenes. pero creo que seria mucho engorro así.
En línea

avesudra


Desconectado Desconectado

Mensajes: 724


Intentando ser mejor cada día :)


Ver Perfil
Re: Leer datos de un programa en ejecución
« Respuesta #4 en: 16 Noviembre 2012, 19:31 pm »

Tienes que buscar las direcciones de memoria que usa el programa para eso y sacarlas con la función de la API de Windows :
http://msdn.microsoft.com/es-es/library/windows/desktop/ms680553%28v=vs.85%29.aspx
En línea

Regístrate en
samuelhm

Desconectado Desconectado

Mensajes: 28



Ver Perfil
Re: Leer datos de un programa en ejecución
« Respuesta #5 en: 16 Noviembre 2012, 19:51 pm »

Soy un poco malo con el ingles, ese es el problema.
 
Igualmente buscaré por google el uso de ReadProcessMemory function porque no acabo de entender que me da exactamente, de todas formas muchas gracias, ya tengo algo para buscar.
En línea

samuelhm

Desconectado Desconectado

Mensajes: 28



Ver Perfil
Re: Leer datos de un programa en ejecución
« Respuesta #6 en: 16 Noviembre 2012, 20:01 pm »

El programa este de CHeat Engine, encuentra la direccion de memoria de las fichas de cada uno, lo malo es que tengo que buscar por ejemplo el numero de fichas y el programa extrae la direccion de memoria.

Se podria hacer automatico o es imposible ya que cada vez que se ejecuta la direccion de memoria asignada al valor de la cantidad de fichas siempre es diferente?

EDITO:
Quiero decir, para que se entienda, si yo quiero sacar los nombres y cantidad de fichas de cada jugador sin tener que buscarlo con un programa externo, y cada vez en una mesa diferente, es posible? cada vez que reinicie el programa no estaran en diferentes posiciones de la memoria?


« Última modificación: 16 Noviembre 2012, 20:40 pm por samuelhm » En línea

avesudra


Desconectado Desconectado

Mensajes: 724


Intentando ser mejor cada día :)


Ver Perfil
Re: Leer datos de un programa en ejecución
« Respuesta #7 en: 16 Noviembre 2012, 21:01 pm »

Posible es , como todo , pero eso ya se sale fuera de mis límites , ni idea.
En línea

Regístrate en
x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: Leer datos de un programa en ejecución
« Respuesta #8 en: 16 Noviembre 2012, 23:35 pm »

El programa este de CHeat Engine, encuentra la direccion de memoria de las fichas de cada uno, lo malo es que tengo que buscar por ejemplo el numero de fichas y el programa extrae la direccion de memoria.

Se podria hacer automatico o es imposible ya que cada vez que se ejecuta la direccion de memoria asignada al valor de la cantidad de fichas siempre es diferente?

EDITO:
Quiero decir, para que se entienda, si yo quiero sacar los nombres y cantidad de fichas de cada jugador sin tener que buscarlo con un programa externo, y cada vez en una mesa diferente, es posible? cada vez que reinicie el programa no estaran en diferentes posiciones de la memoria?




Si, la direccion cambia debido a que probablemente el dato se almacena en un buffer creado dinamicamente o si es almacenado siempre en la sección
de datos entonces el ejecutable debe tener tabla de relocalizacion, la solucion es, comprobar si el buffer donde se almacenan los datos es creado
dinamicamente  o si es almacenado siempre en la sección de datos, si es almacenado en ella, entonces el ejecutable tiene tabla de relocalizacion y
podes obtener la direccion siempre y cuando localizes la direccion desde el archivo en el disco luego resta la direccion base menos la direccion actual en memoria, luego con la direccion ( no offset ) del dato sumas la direccion base actual del ejecutable en memoria más la direccion en memoria  del dato más
el resultado anterior ( entre la direccion base del archivo PE y la direccion base el archivo en memoria ) y obtendras la direccion del dato.

si el buffer es creado dinamicamente entonces tendras que buscar la llamada a la API que crea ese buffer y hookearla y así obtendras el puntero a los datos basandote en los parametros que se pasan al programa, obviamente el programa debe reservar bastante memoria osea varias llamadas a la API.

En línea

samuelhm

Desconectado Desconectado

Mensajes: 28



Ver Perfil
Re: Leer datos de un programa en ejecución
« Respuesta #9 en: 16 Noviembre 2012, 23:49 pm »

Muchas Gracias por esta gran explicación RHL, aunque la verdad ahora que he comprobado, se escapa de mis limites  :-( :-( :-(.
Intentaré ir aprendiendo poco a poco a hacerlo.
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ejecución condicional [Batch] LEER
Scripting
leogtz 7 10,730 Último mensaje 17 Diciembre 2008, 18:15 pm
por Banti
[BATCH] Detectar primera ejecucion y guardar datos
Scripting
EAMP14 2 2,836 Último mensaje 5 Abril 2012, 18:46 pm
por EAMP14
Pasar datos a web con webbrowser en tiempo de ejecución (no hay manera)
Programación Visual Basic
oskarrr 1 2,851 Último mensaje 11 Septiembre 2012, 17:15 pm
por seba123neo
Problema con ejecución programa en C++
Programación C/C++
hackertrust 5 4,925 Último mensaje 3 Febrero 2023, 18:43 pm
por hackertrust
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines