[?]Addys Dinamicas y Offset (Solucionado)

Iniciado por Иōҳ, 23 Marzo 2010, 02:02 AM

0 Miembros y 1 Visitante están viendo este tema.

Иōҳ

Hola, que tal...

Bueno esta vez los molesto por que tengo un pequeño problema, ( y hasta me da verguenza en poner mi horrible codigo que hice :S).

Yo obtengo el Manejor de modulo de una dll gracias a eso puedo obtener la addy especifica de una funcion..

esa addy es dinamica por eso hago lo anterior, siendo que la funcion es el puntero a la addy dinamica...

Bueno sin tanto palabreo... al punto

lo que quiero es no usar la funcion si no algo que, por ejemplo cambie cuando haya una actualizacion entoncs, lo que he pensado es esto obtener el offset de la funcion,
y cuando haya por ejemplo una actualizacion esta cambie.

a esto seria solo obtener el manejador del modulo de la dll y sumarle el offset.

-Ahora quiero saber si haciendo eso cambiaria el offset en cada Actualizacion, teniendo encuenta que lo obtube de una libreria :)

-Quiero saber si lo que tengo pensado esta bien

-O tal vez Volver Statica esa Addy? si asi cambia en cada actualizacion seria genial hacerlo asi, pero como lo haria?

-Si no como puedo segun la idea de ustedes, pudiera hacerlo =)

Muxas Graxias a todos por tomarse el tiempo de leer mi duda ^^
Eres adicto a la Ing. Inversa? -> www.noxsoft.net

Eternal Idol

¿Con addy te referis a address, a direccion? No entiendo casi nada realmente ... las direcciones pueden cambiar perfectamente con una actualizacion ...
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

bizco

Bueno yo tampoco entiendo mucho de l que dices ¿addy?, no se habla claro. creo entender que necesitas saber la direccion de una funcion o de alguna zona dentro de alguna libreria, para este caso personalmente buscaria un patron para localizarla independientemente de la version.

Иōҳ

#3
Re-Escribiendo

La DLL usas funciones, las cuales son como punteros a dichas direcciones de memorias,esa address es dinamica.

Asi que Usando GetModuleHandle y GetProcAddress, obtengo el address especifico a usar

       invoke GetModuleHandle, addr DLL
   invoke GetProcAddress, eax, addr Funcion
   mov lpFuncion,eax

Entonces no interesa que haya actualizacion o no por que la funcion es el puntero a la address y haciendo el procedimiento anterior siempre obtendre el address actual.

Bueno sin tanto palabreo... al punto

lo que quiero es no usar la funcion si no algo que, por ejemplo cambie cuando haya una actualizacion entonces, lo que he pensado es esto obtener el offset de la funcion,
y cuando haya por ejemplo una actualizacion esta cambie.

Lo que quiero decir es que cargar la dll y contar el desplazamiento que hay hasta la funcion, a esto seria solo obtener el manejador del modulo de la dll y sumarle el offset.

(Algunos Me dijeron que Tengo que usar un bite signature. )

-Ahora quiero saber si haciendo eso cambiaria el offset en cada Actualizacion, teniendo encuenta que lo obtube de una libreria :)

-Quiero saber si lo que tengo pensado esta bien

-O tal vez Volver Statica esa Address? si asi cambia en cada actualizacion seria genial hacerlo asi, pero como lo haria?

-Si no como puedo segun la idea de ustedes, pudiera hacerlo =)

Muxas Graxias a todos por tomarse el tiempo de leer mi duda ^^

espero que se entienda xD

Eres adicto a la Ing. Inversa? -> www.noxsoft.net

Eternal Idol

¿Para que queres hacer eso? ¿Identificar una version determinada?
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

Иōҳ

por que quiero modificar el contenido de aquellas direcciones de memoria, y no se quise hacerlo asi por que me parecio mas dificil!, eso creo aunque sea menos practico.
Osea mas que todo es curiosidad :P como podria hacerlo de esa manera   ::)  :xD 
Eres adicto a la Ing. Inversa? -> www.noxsoft.net

[Zero]

Con actualización supongo que te refieres a actualización de la dll? Que clase de dll? Por qué no usar getprocaddress? Lo que puedes hacer es recorrer la Export Table y localizar la dirección de la API, para eso está esa tabla  :P.

Saludos

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

Eternal Idol

Cita de: NoxOner en 23 Marzo 2010, 22:13 PMpor que quiero modificar el contenido de aquellas direcciones de memoria, y no se quise hacerlo asi por que me parecio mas dificil!, eso creo aunque sea menos practico.

¿Que direcciones y con que queres reemplazarlas?

Cita de: NoxOner en 23 Marzo 2010, 22:13 PMOsea mas que todo es curiosidad :P como podria hacerlo de esa manera   ::)  :xD 

Sinceramente sigo sin entender QUE queres hacer exactamente (ya explicaste un par de veces COMO queres hacer algo).
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

Иōҳ

:S

que tan malo soy explicando? XD

Cita de: Hacker_Zero en 23 Marzo 2010, 22:17 PM
Con actualización supongo que te refieres a actualización de la dll? Que clase de dll? Por qué no usar getprocaddress? Lo que puedes hacer es recorrer la Export Table y localizar la dirección de la API, para eso está esa tabla  :P.

Saludos

No yo puedo usar dichas APIS sin ningun problema

Cita de: Eternal Idol en 23 Marzo 2010, 22:19 PM
Cita de: NoxOner en 23 Marzo 2010, 22:13 PMpor que quiero modificar el contenido de aquellas direcciones de memoria, y no se quise hacerlo asi por que me parecio mas dificil!, eso creo aunque sea menos practico.

¿Que direcciones y con que queres reemplazarlas?

Cita de: NoxOner en 23 Marzo 2010, 22:13 PMOsea mas que todo es curiosidad :P como podria hacerlo de esa manera   ::)  :xD 

Sinceramente sigo sin entender QUE queres hacer exactamente (ya explicaste un par de veces COMO queres hacer algo).

Hehe, lo que quiero es que me ayuden a resolver con unos cuantos ejemplos por que como dijistes ya explique como quiero hacer algo. Pero un codigo concretamente para hacerlo lo que quiero no tengo, lo e intentando pero se que esta mal y que necesito como que algo para empezar.

En resumidas Cuentas lo QUE quiero hacer es lo que estoy explicando. pero claro plasmarlo en  asm :)  ;D
Eres adicto a la Ing. Inversa? -> www.noxsoft.net

[Zero]

Yo te recomendaría que vuelvas a explicar más claramente que es exactamente lo que quieres hacer, lo que tienes, lo que quieres conseguir y los problemas que tienes para conseguirlo, francamente me pasa comoa  EI, creo que no entiendo que es lo que tratas de hacer   :-\

Saludos

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