elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
22 Agosto 2008, 06:03  



+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderador: ®®)
| | |-+  cómo obtener la base address de una dll ?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Imprimir
Autor Tema: cómo obtener la base address de una dll ?  (Leído 179 veces)
*dark

Desconectado Desconectado

Mensajes: 11


Ver Perfil
cómo obtener la base address de una dll ?
« en: 26 Febrero 2008, 20:53 »

buenas quisiera saber sobre obtener la base address de una dll si me lo pueden mostrar con un ejemplo o linkearme a donde ir para leer sobre como hacerlo o lo que puedan decirme al respecto agradezco la ayuda
En línea
project 2501

Desconectado Desconectado

Mensajes: 137



Ver Perfil
Re: cómo obtener la base address de una dll ?
« Respuesta #1 en: 26 Febrero 2008, 23:27 »

Creo que esto es lo que andas buscando:
http://msdn.microsoft.com/library/spa/default.asp?url=/library/SPA/vccore/html/_core_GetProcAddress.asp

Si quieres algun codigo de ejemplo solo tienes que buscar en google, porque muchos exploits utilizan esa funcion, asi que seguro que encontraras unos cuantos ejemplos.
En línea

¿Y a dónde va el recién nacido desde aquí? La red es vasta e infinita
*dark

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: cómo obtener la base address de una dll ?
« Respuesta #2 en: 27 Febrero 2008, 00:44 »

gracias por responder, estuve mirando no estoy seguro pero que se puede hacer con
GetModuleHandle( ModuleName ); y este es un ejemplo como ese:

HANDLE hHandle = GetModuleHandle("samp.dll");
      if(!hHandle){
      PVOID Help;
      Help = ((hHandle) + 0x021C1A2F);
      nop_(Help, 5);
      }


en ese ejemplo se necesita poner nop en 5 bytes en la samp.dll, estos 5 bytes es 0x021C1A2F luego de la base address.
esta es otra forma de hacerlo..

DWORD dwBase = (DWORD)GetModuleHandle("samp.dll");
if(dwBase)
    nop_( (PVOID)(dwBase + 0x021C1A2F), 5 );




y esta sería la función nop:

void nop_( PVOID vpAddress, int numNops )
{
    DWORD dwOldProtection;
    VirtualProtect( vpAddress, numNops, PAGE_EXECUTE_READWRITE, &dwOldProtection );
    memset( vpAddress, 0x90, numNops );
}



o esta otra:


//declares
#define NOP 0x90
//declares

void nop_(PVOID address, int bytes){
    DWORD d, ds;
    VirtualProtect(address, bytes, PAGE_EXECUTE_READWRITE, &d); //set the memory region to read/write
    memset(address, NOP, bytes); //NOP the address(s)
    VirtualProtect(address,bytes,d,&ds); //set the memory region back to its original state
}



pero estos ejemplos están bien entonces me sirve para obtener la base address de la dll, y sobre usar getprocaddress de eso no he visto ejemplos para ver como sería  :( siganme respondiendo se agradece


« Última modificación: 27 Febrero 2008, 00:46 por *dark » En línea
project 2501

Desconectado Desconectado

Mensajes: 137



Ver Perfil
Re: cómo obtener la base address de una dll ?
« Respuesta #3 en: 27 Febrero 2008, 05:26 »

En este enlace tienes una explicacion de lo que es y tiene un enlace a un codigo de ejemplo

http://msdn2.microsoft.com/en-us/library/ms683212(VS.85).aspx

A ver si te sirve ;)
En línea

¿Y a dónde va el recién nacido desde aquí? La red es vasta e infinita
Páginas: [1] Ir Arriba Imprimir 
Ir a:  





Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

hard-h2o modding    Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    Foros en español    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.5 | SMF © 2006-2008, Simple Machines LLC