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

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: karmany, .:UND3R:., MCKSys Argentina)
| | |-+  LLamar a una direccion de memoria desde otro programa
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: LLamar a una direccion de memoria desde otro programa  (Leído 4,526 veces)
s_azazel

Desconectado Desconectado

Mensajes: 98



Ver Perfil
LLamar a una direccion de memoria desde otro programa
« en: 31 Octubre 2010, 11:34 am »

Muy Buenas, estoy iniciandome en el mundo de la ingenieria inversa y mi primer proyecto es hacer un progrma que controle otro.

Para eso he puesto varios bmsg y he visto las llamadas que hacen.

Mi pregunta es... en algun lenguaje de programacion.... vb o c se puede escribir alguna orden para que en tiempo de ejecucion el programa valla a una direccion y la ejecute????

Muchas gracias!!!!!
En línea

[Zero]
Wiki

Desconectado Desconectado

Mensajes: 1.082


CALL DWORD PTR DS:[0]


Ver Perfil WWW
Re: LLamar a una direccion de memoria desde otro programa
« Respuesta #1 en: 31 Octubre 2010, 11:41 am »

¿A una dirección del propio programa o a una dirección del programa remoto? Si es del propio programa puedes hacerlo en C con un puntero a una función o en ASM con un call o un jmp. Si es lo segundo puedes usar SuspendThread+GetThreadContext+SetThreadContext+ResumeThread o CreateRemoteThread.

Saludos
En línea


“El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche
s_azazel

Desconectado Desconectado

Mensajes: 98



Ver Perfil
Re: LLamar a una direccion de memoria desde otro programa
« Respuesta #2 en: 31 Octubre 2010, 11:46 am »

Es del programa remoto para que se ejecute la rutina como si la llamaras desde dentro

Es posible hacer algo desde vb???

Estoy ahora mismo aprendiendo c pero aun lo llevo algo flojillo como para hacer un entorno visual XDD

Muchas gracias!!!!
En línea

karmany
Moderador
***
Desconectado Desconectado

Mensajes: 1.611


Sueñas que sueñas


Ver Perfil WWW
Re: LLamar a una direccion de memoria desde otro programa
« Respuesta #3 en: 31 Octubre 2010, 11:56 am »

z_azazel: "estoy iniciandome en el mundo de la ingenieria inversa"
Por este motivo, tal vez lo que intentas hacer sea algo complejo. ¿Por qué no intentas modificar directamente el programa, en vez de utilizar otro para que lo haga?

Si expones más detalladamente tu problema tal vez te podamos orientar para encontrar una solución más sencilla.(estoy casi convencido que la hay).
En línea

s_azazel

Desconectado Desconectado

Mensajes: 98



Ver Perfil
Re: LLamar a una direccion de memoria desde otro programa
« Respuesta #4 en: 31 Octubre 2010, 12:04 pm »

Antes de nada muchas gracias a todos por vuestra ayuda

Exactamente lo que estoy intentando es hacer un bot de un juego....

El problema que tengo es que mediante SendKeys henvio pulsaciones de teclado y me funciona perfectametne excepto para el movimiento

He puesto un BMSG en Olly para que me salte al pulsar una tecla y he localizado la rutina que hace cuadno se pulsa por ejemplo la tecla de avanzar

Lo que pretendia hacer es que de alguan forma mediante el bot me saltara a esa rutina directamente

Muchas gracias de nuevo por orientarme un poco XDDD
En línea

karmany
Moderador
***
Desconectado Desconectado

Mensajes: 1.611


Sueñas que sueñas


Ver Perfil WWW
Re: LLamar a una direccion de memoria desde otro programa
« Respuesta #5 en: 31 Octubre 2010, 13:03 pm »

¿Y por qué no te funciona un Sendkeys a la pulsación de avanzar?
Qué programa es?
En línea

s_azazel

Desconectado Desconectado

Mensajes: 98



Ver Perfil
Re: LLamar a una direccion de memoria desde otro programa
« Respuesta #6 en: 31 Octubre 2010, 13:10 pm »

Es un juego tipo WOW se llama runes of magic al enviar por ejemplo la pulsacion de la tecla "b" me abre la mochila pero al enviar la "w" no avanza el personaje tambien he probado enviando "{x 10}" y en el chat del juego me pone 10 w pero con el chat desactivado no me avanza

Por eso habia pensado el llamar directamente a la direcion del programa que da la orden de avanzar la cual tengo localizada ya

Gracias de nuevo por vuestro tiempo
En línea

[Zero]
Wiki

Desconectado Desconectado

Mensajes: 1.082


CALL DWORD PTR DS:[0]


Ver Perfil WWW
Re: LLamar a una direccion de memoria desde otro programa
« Respuesta #7 en: 31 Octubre 2010, 13:21 pm »

Si quieres hacer eso lo más recomendable sería inyectar una DLL en el proceso y desde ahí ejecutas lo que quieras, pero eso en VB como que no  :-\.

Saludos
En línea


“El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche
s_azazel

Desconectado Desconectado

Mensajes: 98



Ver Perfil
Re: LLamar a una direccion de memoria desde otro programa
« Respuesta #8 en: 31 Octubre 2010, 18:46 pm »

Ok muchas gracias me voy a poner a ello pues con c XDDD a ver
¿hay alguna aplicacion de c++ del tipo vb en entorno visual???

La cosa seria hacer la dll con las instruccines inyectarla y ejecutarla no??

voy a leer un poco a ver si me aclaro con las inyecciones de dll XDDDD

Gracias!!!!
« Última modificación: 31 Octubre 2010, 18:49 pm por s_azazel » En línea

[Zero]
Wiki

Desconectado Desconectado

Mensajes: 1.082


CALL DWORD PTR DS:[0]


Ver Perfil WWW
Re: LLamar a una direccion de memoria desde otro programa
« Respuesta #9 en: 31 Octubre 2010, 19:19 pm »

Si, lee sobre inyecciones DLL, también puedes leer sobre API Hooking (MazarD tiene unos papers muy buenos sobre ambos temas) y luego puedes ver algunos códigos de cheats sencillos. Se trata de ejecutar un código tuyo en el proceso remoto, y la forma más fácil de hacerlo es con una inyección DLL.

Para lo de la GUI, yo te recomiendo 100 veces Qt, puedes hacer la GUI usando drag&drop además de muchas otras cosas no relacionadas con la interfaz gráfica, y siempre siendo multiplataforma.

Saludos
En línea


“El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines