Mostrar módulos dll cargados por mi ejecutable.

Iniciado por hexadbg, 2 Julio 2014, 23:22 PM

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

hexadbg

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.

Eternal Idol

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
Traversing the Module List
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

hexadbg

muchas gracias por la respuesta, tomare en cuenta la sugerencia.
solucionado.

Eternal Idol

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

Arkangel_0x7C5

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