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
Printable View
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
son metodos de encriptacion, el mas comun es xor.
é 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 abrirCitação:
Originally Posted by iFreeHP [Only registered and activated users can see links. Click Here To Register...]
para ferrarezi y zteam usan este metodo [Only registered and activated users can see links. Click Here To Register...] 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
y esta es la de ferrareziCódigo:void ScriptEncode::Encode(char* buffer, int size){
// ----
int i;
for (i=0;i<size; i++)
{
buffer[i]=buffer[i]^XorTableLock[i%3];
}
// ----
}
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.Código: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;
}
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.