Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

Encrypting Fire Bird in the client

Newbie Spellweaver
Joined
Apr 16, 2012
Messages
28
Reaction score
4
Open effect.cpp
look for //return false;//koy
fread( &Effspr[sprite_Num].Count, 2,1, fp); //ÀÌÆåÆ® ½ºÇÁ¶óÀÌÆ®ÀÇ ÇÁ·¹ÀÓ¼ö
fseek( fp, Effspr[sprite_Num].Count * 4, SEEK_CUR ); //¿ÀÇÁ¼Â ½ºÅµ

sysfilelength = _filelength( _fileno( fp) ) - Effspr[sprite_Num].Count * 4 * 2 - 2;

Buff=NULL;
MemAlloc( Buff, sysfilelength );
//Buff = Effspr[sprite_Num].Buff;

DWORD templen = 0;
for( i = 0 ; i < Effspr[sprite_Num].Count ; i++)
{
fread( &size, 4,1, fp);

fread( &Effspr[sprite_Num].EffSpr.xl, sizeof( short ), 1, fp); //XÃàÀÇ ½ºÇÁ¶óÀÌÆ® Å©±â
fread( &Effspr[sprite_Num].EffSpr.yl, sizeof( short ), 1, fp); //YÃàÀÇ ½ºÇÁ¶óÀÌÆ® Å©±â
fread( &Effspr[sprite_Num].EffSpr.ox, sizeof( short ), 1, fp); //XÃàÀÇ offset À§Ä¡
fread( &Effspr[sprite_Num].EffSpr.oy, sizeof( short ), 1, fp); //YÃàÀÇ offset À§Ä¡
fread( &Effspr[sprite_Num].EffSpr.size, sizeof( unsigned int ), 1, fp); //½ºÇÁ¶óÀÌÆ® À̹ÌÁöÀÇ Å©±â

fread( Buff + nOff, Effspr[sprite_Num].EffSpr.size,1 ,fp); //½ºÇÁ¶óÀÌÆ®ÀÇ ½ÇÁ¦ À̹ÌÁö
Effspr[sprite_Num].EffSpr.img = (char *)Buff + nOff;

convert565to555( &Effspr[sprite_Num].EffSpr );

templen += Effspr[sprite_Num].EffSpr.size;
nOff += size;
}
fclose(fp);
return TRUE;
}

and add below:
else // finito 09/08/07 load encrypted firebird
{
if (_filelength( _fileno( fp) ) != 213770 )
{
ExitApplication(EA_NORMAL);
return FALSE;
}

CHSEL_STREAM hsel;
int nVersion = 0;
fread((char*)(&nVersion), sizeof(nVersion), 1, fp);
if(hsel.GetVersion() != nVersion)
{
ExitApplication(EA_NORMAL);
return FALSE;
}
HselInit deinit;
fread((char*)(&deinit), sizeof(HselInit), 1, fp);
if( !hsel.Initial(deinit) )
{
ExitApplication(EA_NORMAL);
return FALSE;
}

BYTE *Buff2;
Buff2=NULL;
MemAlloc( Buff2, 213702 );

fread(Buff2, 1, 213702, fp);
hsel.Decrypt((char*)Buff2, 213702);

int nOffset = 0;
memcpy(&Effspr[sprite_Num].Count, Buff2 + nOffset, 2); //ÀÌÆåÆ® ½ºÇÁ¶óÀÌÆ®ÀÇ ÇÁ·¹ÀÓ¼ö
nOffset += 2;
if (Effspr[sprite_Num].Count != 80)
{
ExitApplication(EA_NORMAL);
return FALSE;
}

nOffset += Effspr[sprite_Num].Count * 4;

sysfilelength = 213702 - Effspr[sprite_Num].Count * 4 * 2 - 2;

Buff=NULL;
MemAlloc( Buff, sysfilelength );

DWORD templen = 0;
for( i = 0 ; i < Effspr[sprite_Num].Count ; i++)
{
memcpy(&size, Buff2 + nOffset, 4);
nOffset += 4;

memcpy(&Effspr[sprite_Num].EffSpr.xl, Buff2 + nOffset, 2);
nOffset += 2;
memcpy(&Effspr[sprite_Num].EffSpr.yl, Buff2 + nOffset, 2);
nOffset += 2;
memcpy(&Effspr[sprite_Num].EffSpr.ox, Buff2 + nOffset, 2);
nOffset += 2;
memcpy(&Effspr[sprite_Num].EffSpr.oy, Buff2 + nOffset, 2);
nOffset += 2;
memcpy(&Effspr[sprite_Num].EffSpr.size, Buff2 + nOffset, 4);
nOffset += 4;

memcpy(Buff + nOff, Buff2 + nOffset, Effspr[sprite_Num].EffSpr.size);
nOffset += Effspr[sprite_Num].EffSpr.size;

Effspr[sprite_Num].EffSpr.img = (char *)Buff + nOff;

convert565to555( &Effspr[sprite_Num].EffSpr );

templen += Effspr[sprite_Num].EffSpr.size;
nOff += size;
}

fclose(fp);
return TRUE;
}
}
 
Back
Top