PDA

View Full Version : Main.exe reconhecer main.xtm



Rey Mysterious
14/06/2016, 12:31 AM
Vejo muitos main.exe ler arquivos com extençãoes diferentes , por exemplo o main do emulador ferrarezi reconhece o arquivo main.frz o da x-team main.xtm , alguém sabe me informar como faz essa alteração se é pela source ou pelo main.exe , obrigado

Natzugen
14/06/2016, 12:41 AM
son metodos de encriptacion, el mas comun es xor.

iFreeHP
14/06/2016, 01:01 AM
é feito pela source, o nome da extensão não é digamos.. "util" ou de alguma importancia, o importante é a encriptação (a qual não precisa ser mexida)

se você abrir a source do main procurar por main.emu (ou .xtm, e qualquer q seja a extensão) e mudar para outra vai funcionar com a que você colocar.
Pelo menos no main da x-Team (MuEmu tbm) é assim que funciona, já no ferrarezi não testei a teoria.

Rey Mysterious
14/06/2016, 06:57 AM
é feito pela source, o nome da extensão não é digamos.. "util" ou de alguma importancia, o importante é a encriptação (a qual não precisa ser mexida)

se você abrir a source do main procurar por main.emu (ou .xtm, e qualquer q seja a extensão) e mudar para outra vai funcionar com a que você colocar.
Pelo menos no main da x-Team (MuEmu tbm) é assim que funciona, já no ferrarezi não testei a teoria.

Foi mudado na source do muemu , está geraldo o arquivo no tooçs tudo certo , mais o main não abre de forma alguma , agora se joga os arquivo .emu o main ja volta a abrir

Natzugen
14/06/2016, 02:59 PM
para ferrarezi y zteam usan este metodo [Only registered and activated users can see links] simplemente es xor, por lo que si el metodo para "desencriptar" esta en el source de la dll del cliente se puede usar para crear el encoder.

esta la de zteam

void ScriptEncode::Encode(char* buffer, int size){
// ----
int i;
for (i=0;i<size; i++)
{
buffer[i]=buffer[i]^XorTableLock[i%3];
}
// ----
}

y esta es la de ferrarezi



bool CProtect::CheckSumLoad(char* filename)
{
if(this->SetBuffer(filename) == 0)
{
return 0;
}


int n;


memcpy(&this->WindowName,&this->m_buff[0],32);
memcpy(&this->ScreenShot,&this->m_buff[32],128);
memcpy(&this->ServerIP,&this->m_buff[160],15);
memcpy(&this->Login,&this->m_buff[175],15);
memcpy(&this->Instances,&this->m_buff[190],1);
memcpy(&this->CSPortChar,&this->m_buff[191],5);
memcpy(&this->RFbt,&this->m_buff[196],1);
memcpy(&this->Serial,&this->m_buff[197],16);
memcpy(&this->MainCRCchar,&this->m_buff[213],8);


for(n=0; n < 32; n++)
{
this->WindowName[n] ^= 0xD6;
}


for(n=0; n < 128; n++)
{
this->ScreenShot[n] ^= 0xC3;
}


for(n=0; n < 15; n++)
{
this->ServerIP[n] ^= 0xB1;
}


for(n=0; n < 15; n++)
{
this->Login[n] ^= 0xA8;
}


this->Instances[0] ^= 0x65;


for(n=0; n < 5; n++)
{
this->CSPortChar[n] ^= 0x91;
}
this->CSPort = atoi(this->CSPortChar);


this->RFbt[0] ^= 0x73;


for(n=0; n < 17; n++)
{
this->Serial[n] ^= 0xA9;
}


for(n=0; n < 8; n++)
{
this->MainCRCchar[n] ^= 0xD3;
}


this->MainCRC = strtoul(this->MainCRCchar,NULL,16);


return 1;
}
la unica diferencia es que zteam usa una clave comun para todos los archivos, mientras que ferrarezi usa una especifica para cada variable pero en si el concepto es el mismo.

si le aplicas esta clave a una linea de texto te genera la linea encriptada y si la aplicas a la que esta encriptada te genera la linea desencriptada, algo asi para explicarlo de una manera sencilla.