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 ^^
¿Con addy te referis a address, a direccion? No entiendo casi nada realmente ... las direcciones pueden cambiar perfectamente con una actualizacion ...
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.
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
¿Para que queres hacer eso? ¿Identificar una version determinada?
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
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
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).
: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
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
Cita de: NoxOner en 23 Marzo 2010, 22:27 PMque tan malo soy explicando? XD
Nadie entiende todavia que queres hacer ... si en lugar de REPETIR lo mismo como hiciste hasta ahora EXPLICAS exactamente QUE PRETENDES hacer tal vez te podamos ayudar.
Ya que la terminologia que usas es desconocida tal vez podrias empezar por dar datos concretos por ejemplo: ¿A que libreria te estas refiriendo? ¿A que funcion? ¿En que direcciones queres escribir y que queres escribir? ¿Para que queres usar otra cosa en lugar de la direccion devuelta por GetProcAddress? ¿Cual es el sentido?
Solucionado en teoria XD... gracias a Hacker_Zero por ayudarme! :P
y a EI por preocuparse por entender mi pregunta y ayudarme ^^
Graxias
Salu2