InicioInfoCreacion de un Server Builder

Creacion de un Server Builder

Info7/15/2013
[Titulo] : Creacion de un Server Builder
: Delphi
: Doddy Hackman



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

0x01 : Introduccion
0x02 : Creacion del builder
0x03 : Creacion del stub
0x04 : Probando el programa

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


0x01 : Introduccion

Siempre quise hacer un Server Builder en delphi pero siempre me fue dificil porque nadie habia hecho un manual en Delphi donde se explicara , tampoco en los foros
de programacion me querian ayudar , entonces tuve que buscar mucho en google hasta encontrar un codigo simple donde se tratara de este tema.
Entonces encontre un codigo donde se trataba de este caso hecho en Delphi por alguien llamado Faceless Wonder , de esta forma me base del codigo de Faceless Wonder
para poder hacer uno bien basico para poder explicar en este tutorial.

Empecemos .......


0x02 : Creacion del builder

Primero vamos a crear el builder , para eso vamos a File->New->VCL Forms Application como lo hice en la imagen :

Creacion de un Server Builder

Ahora creamos dos edit y un boton como en la imagen :

server

Despues le damos doble click al boton para poner el siguiente codigo :

Código:

procedure TForm1.Button1Click(Sender: TObject);
var
linea: string; // Declaramos todas las variables
aca: THandle;
code: Array [0 .. 80 + 1] of Char;
nose: DWORD;
marca_uno: string;
marca_dos: string;

begin

marca_uno := '{IP}'; // Ponemos la marca para la IP
marca_dos := '{PORT}'; // Ponemos la marca para el puerto

aca := INVALID_HANDLE_VALUE;
nose := 0;

begin
linea := marca_uno + Edit1.Text + marca_uno + marca_dos + Edit2.Text +
marca_dos; // Formamos la linea con los datos de la IP y el Puerto
StrCopy(code, pchar(linea));
aca := CreateFile(pchar('server.exe'), GENERIC_WRITE, FILE_SHARE_READ, nil,
OPEN_EXISTING, 0, 0); // Abrimos el archivo server.exe
if (aca <> INVALID_HANDLE_VALUE) then
begin
SetFilePointer(aca, 0, nil, FILE_END);
WriteFile(aca, code, 80, nose, nil); // Escribimos en el archivo
CloseHandle(aca); // Cerramos el archivo
end;
end;

end;




Otra imagen para que vean como quedo :

delphi

Con eso guardamos el proyecto y vamos al stub

0x03 : Creacion del stub

La parte vital y supuestamente mas dificil , la idea es que el archivo se lea a si mismo y busque lo que hicimos en el builder , para empezar hacemos lo mismo que el builder ,
creamos otro proyecto como la otra vez , File->New->VCL Forms Application , entonces agregamos dos edit y un boton como en la imagen.

Builder

Una vez hecho hacemos doble click en el boton y ponemos el siguiente codigo :

Código:

// Funcion para dividir el texto para buscar la IP y el Puerto

function regex(text: String; deaca: String; hastaaca: String): String;
begin
Delete(text, 1, AnsiPos(deaca, text) + Length(deaca) - 1);
SetLength(text, AnsiPos(hastaaca, text) - 1);
Result := text;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
ob: THandle; // Declaramos todas las variables
code: Array [0 .. 80 + 1] of Char;
nose: DWORD;
ip: string;
port: string;

begin

ob := INVALID_HANDLE_VALUE;
code := '';

// El programa se lee a si mismo
ob := CreateFile(pchar(paramstr(0)), GENERIC_READ, FILE_SHARE_READ, nil,
OPEN_EXISTING, 0, 0);
if (ob <> INVALID_HANDLE_VALUE) then
begin
SetFilePointer(ob, -80, nil, FILE_END);
ReadFile(ob, code, 80, nose, nil); // Extraemos el contenido y lo ponemos en la variable code
CloseHandle(ob); // Cerramos el archivo
end;

ip := regex(code, '{IP}', '{IP}'); // Usamos la funcion regex para sacar la IP
port := regex(code, '{PORT}', '{PORT}'); // Usamos la funcion regex para sacar el puerto

Edit1.text := ip; // Ponemos la IP en Edit1
Edit2.text := port; // Ponemos el puerto en Edit2

end;



Una imagen de como queda :

2010

Guarden el proyecto de forma que el ejecutable termine llamandose server.exe

Ahora que esta todo hecho pasamos al siguiente punto.

0x04 : Probada del programa

Bueno ,ahora solo cargan el builder , ponen los datos que quieran y despues cargan el stub "server.exe" para cargar el boton del stub , entonces veran algo como esto

Creacion de un Server Builder

Como ven tambien use WinHex para cargar el ejecutable server.exe y verificar que realmente el builder habia hecho bien el trabajo.

Eso seria todo.

--========--
The End ?
--========--
Datos archivados del Taringa! original
10puntos
0visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
2visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

D
DoddyHackman🇦🇷
Usuario
Puntos0
Posts17
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.