Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: hexadbg en 2 Julio 2014, 23:22 pm



Título: Mostrar módulos dll cargados por mi ejecutable.
Publicado por: hexadbg en 2 Julio 2014, 23:22 pm
Muy buenas tardes foreros, bueno soy iniciando en c++ ando usando visual studio 2010, y decidí unirme a esta comunidad, gracias.

ando desarrollando un anti-injec, que me ayuda a ver si se inyecta una dll. en el ejecutable. el código que uso es este.

void I_loop(){
// Dica: [NOME.extenção] não é case sensitive.
    if (GetModuleHandle("speedhack.dll")    ||
      (GetModuleHandle("speed-hack.dll"))  ||
      (GetModuleHandle("speed-hack.dll"))  ||
      (GetModuleHandle("speed_hack.dll"))  ||
      (GetModuleHandle("hack_speed.dll"))  ||
      (GetModuleHandle("hack-speed.dll"))  ||
      (GetModuleHandle("hackspeed.dll"))   ||
      (GetModuleHandle("hack.dll"))        ||
       (GetModuleHandle("wpepro.dll"))      ||
      (GetModuleHandle("Cr4ck3r.dll"))     ||
      (GetModuleHandle("wpeprospy.dll"))   ||
        (GetModuleHandle("engine.dll"))      ||
      (GetModuleHandle("CheatEngine.dll")) ||
      (GetModuleHandle("c.e.dll"))         ||
      (GetModuleHandle("cheat.dll"))       ||
      // (GetModuleHandle("FoxAnti.dll"))     || 
        (GetModuleHandle("administrador.dll"))        )
   {
                  Injetado();   /*mensaje error y cierra ejecutable*/
   }
    else{
    }
   if(!FindWindow(NULL,"Nada acontece..."))
   {
}
}

Esto me funciona bien uso GetModuleHandle, cuando inyecto una dll, y si esta dentro de la lista, me da el mensaje error, y me vota del ejecutable.

Ahora e decidido mejorar esta función y aqui necesito ayuda.

Como puedo obtener una lista de los modulos dll que ejecutan o carga en mi ejecutable.
Es decir quiero saber que dll son cargadas por mi ejecutable y realizar una lista, entonces cualquier dll con cualquier nombre que no este dentro de esta lista, se cierre el ejecutable.
Estaba pensado en Usar EnumProcessModules, pero no encuentro guías en español lo explique.


Título: Re: Mostrar módulos dll cargados por mi ejecutable.
Publicado por: Eternal Idol en 3 Julio 2014, 07:56 am
Aprender un minimo de ingles como para entender documentacion tecnica es imprescindible a largo plazo.

Dos formas de hacerlo:
Enumerating All Modules For a Process (http://msdn.microsoft.com/en-us/library/windows/desktop/ms682621(v=vs.85).aspx)
Traversing the Module List (http://msdn.microsoft.com/en-us/library/windows/desktop/ms686849(v=vs.85).aspx)


Título: Re: Mostrar módulos dll cargados por mi ejecutable.
Publicado por: hexadbg en 3 Julio 2014, 16:20 pm
muchas gracias por la respuesta, tomare en cuenta la sugerencia.
solucionado.


Título: Re: Mostrar módulos dll cargados por mi ejecutable.
Publicado por: Eternal Idol en 3 Julio 2014, 16:39 pm
De nadas  ::)


Título: Re: Mostrar módulos dll cargados por mi ejecutable.
Publicado por: Arkangel_0x7C5 en 3 Julio 2014, 23:23 pm
Pero ese metodo en general no tiene por que funcionar, por que la dll puede estar camuflada o simplemente que no cargan una DLL

Yo pienso que un metodo mejor seria el de interceptar el punto de entrada de los nuevos hilos y ver si fueron creados dentro de el mismo proceso o no. Tampoco es infalible pero protejera de la mayoria de inyecciones

Saludos