Important information: this site is currently scheduled to go offline indefinitely by end of the year.

Core Online

The Original Forum. Game archives, full of resources. How to open them? Get help here.
Post Reply
chrrox
Moderator
Posts: 2602
Joined: Sun May 18, 2008 3:01 pm
Has thanked: 57 times
Been thanked: 1422 times

Core Online

Post by chrrox »

Here is the game core online the archives look xored.
client download
http://download.entwell.com/download/fg ... loader.exe
website
http://www.coreonline.co.kr/main.do
Image
if you just want the main exe's to get the xor key pm me for a sample.


incomplete quickbms script.
will extract and decrypt uncompressed files.

Code: Select all

#comtype COMPRLIB_RLE3
idstring "MFFP"
get null long
get files long
for i = 0 < files
get MFFC long
get null long
get zsize long
get size long
get unk long
getdstring null 0x10
get nsize short
get unk1 short
getdstring name nsize
savepos offset
if zsize == size
filexor "0xF0 0x2E 0xAA 0x3C 0xE4 0xCD 0x11 0x89 0xD1 0xA5 0x45 0xAF 0xC3 0x43 0x52 0x4A 0xA3 0xBE 0x6C 0x82 0xFE 0xF1 0x31 0x63 0x2F 0x39 0xCF 0xA1 0xFA 0xDC 0xF0 0x2E 0xAA 0x3C 0xE4 0xCD 0x11 0x89 0xD1 0xA5 0x45 0xAF 0xC3 0x43 0x52 0x4A 0xA3 0xBE 0x6C 0x82 0xFE 0xF1 0x31 0x63 0x2F 0x39 0xCF 0xA1 0xFA 0xDC"
log name offset zsize
filexor ""
endif
math offset + zsize
goto offset
next i
WRS
ultra-veteran
ultra-veteran
Posts: 603
Joined: Fri Nov 06, 2009 12:13 am
Has thanked: 74 times
Been thanked: 137 times

Re: Core Online

Post by WRS »

the filelist is currently offline (CoreDownloader.ini)
Useful tool links:
chrrox
Moderator
Posts: 2602
Joined: Sun May 18, 2008 3:01 pm
Has thanked: 57 times
Been thanked: 1422 times

Re: Core Online

Post by chrrox »

MrMoonKr
beginner
Posts: 29
Joined: Fri Oct 16, 2009 7:18 am
Has thanked: 24 times
Been thanked: 3 times

Re: Core Online

Post by MrMoonKr »

i cannot find the xor keys, just first four. :keke:

Code: Select all

//------------------------------------------------------------------------

typedef struct ( uint32 size )
{
    char                mData[ size ] ;

} BINData < bgcolor = cLtAqua , read = ReadBINData > ;

string ReadBINData( BINData& data )
{
    string s = "(no data)" ;

    char fourCC[5] ;
    fourCC[0] = data.mData[0] ^ 0xF0 ;
    fourCC[1] = data.mData[1] ^ 0x2E ;
    fourCC[2] = data.mData[2] ^ 0xAA ;
    fourCC[3] = data.mData[3] ^ 0x3C ;
    fourCC[4] = 0 ;

    SPrintf( s , "( %s )" ,
        fourCC
        ) ;
    return s ;
}


//------------------------------------------------------------------------

typedef struct
{
    char                mFourCC[4] ;                ///< "MFFC"
    uint32              mZero ;
    uint32              mSize ;
    uint32              mUncompressedSize ;
    uint32              mType ;                     ///< 1 for normal, 

    uint32              mUnknown1[2] ;
    uint32              mUnknown2[2] ;
    
    uint16              mNameSize ;
    uint16              mPadding ;
    char                mName[mNameSize] ;

    BINData             mData( mSize ) ;            ///< encrypted


} BINChunk < bgcolor = cLtPurple , read = ReadBINChunk > ;

string ReadBINChunk( BINChunk& data )
{
    string s = "(no data)" ;
    SPrintf( s , "( %d )( %s )( %s )" ,
        data.mType ,
        data.mFourCC ,
        data.mName
        ) ;
    return s ;
}

//------------------------------------------------------------------------

/**
    archive file header
*/
typedef struct
{
    char                mFourCC[4] ;            ///< "MFFP"
    uint32              mZero ;
    uint32              mChunkCount ;

    local uint32 i=0 ;
    for ( i=0 ; i < mChunkCount ; ++i )
    {
        BINChunk        mChunkArray ;
    }

} BINHeader < bgcolor = cLtGray , read = ReadBINHeader > ;

string ReadBINHeader( BINHeader& header )
{
    string s = "(no data)" ;
    SPrintf( s , "( %s )( Chunks : %d )" ,
        header.mFourCC ,
        header.mChunkCount
        ) ;
    return s ;
}

//////////////////////////////////////////////////////////////////////////

LittleEndian() ;
//BigEndian() ;

BINHeader               gHeader ;



chrrox
Moderator
Posts: 2602
Joined: Sun May 18, 2008 3:01 pm
Has thanked: 57 times
Been thanked: 1422 times

Re: Core Online

Post by chrrox »

this is the one key you found part of.

Code: Select all

F02EAA3CE4CD1189D1A545AFC343524AA3BE6C82FEF131632F39CFA1FADCF02EAA3CE4CD1189D1A545AFC343524AA3BE6C82FEF131632F39CFA1FADC
the compression is unkown.
I have found it decodes the first part of the file correctly but then has problems using this compression in quickbms.
COMP_COMPRLIB_RLE3, // scan 230

these other compressions produce somewhat close results also
COMP_COMPRLIB_RLE1,
COMP_COMPRLIB_RLE2,

I will upload the client tomorrow so people can have a look.

Game client 10 parts
http://www.sendspace.com/file/fcfvsh - part1
http://www.sendspace.com/file/0aii63 - part2
http://www.sendspace.com/file/6uzqua - part3
http://www.sendspace.com/file/qqx8vs - part4
http://www.sendspace.com/file/fjqxbz - part5
http://www.sendspace.com/file/ax99es - part6
http://www.sendspace.com/file/1vm45y - part7
http://www.sendspace.com/file/422lgf - part8
http://www.sendspace.com/file/u16fqg - part9
http://www.sendspace.com/file/nshu1f - part10
Ekey
M-M-M-Monster veteran
M-M-M-Monster veteran
Posts: 1823
Joined: Wed Mar 31, 2010 6:54 am
Has thanked: 92 times
Been thanked: 1058 times

Re: Core Online

Post by Ekey »

Thanks for sharing. Compressed files you mean textures or what ?
chrrox
Moderator
Posts: 2602
Joined: Sun May 18, 2008 3:01 pm
Has thanked: 57 times
Been thanked: 1422 times

Re: Core Online

Post by chrrox »

the files where zsize != size.
the compression is not known can you post the decompression routine.
my script only extracts uncompressed things where the zip size == decompressed size.
just let me know if any more information is needed i can give specifics.
Ekey
M-M-M-Monster veteran
M-M-M-Monster veteran
Posts: 1823
Joined: Wed Mar 31, 2010 6:54 am
Has thanked: 92 times
Been thanked: 1058 times

Re: Core Online

Post by Ekey »

Ok decompression algo i found.

Code: Select all

unsigned int __cdecl CO_Decompress(int szOutBuf, unsigned int szUncompressedSize, int szInBuf)
{
  unsigned int result;
  int v4;
  int v5;
  char v6;
  char v7;
  int v8;
  __int16 v9;
  int v10;
  char v11;
  int v12;
  char v13;
  signed int v14;
  __int16 v15;
  int v16;
  char v17[4096];
  int v19;
  int v20;

  v4 = szInBuf;
  v5 = 0;
  memset(v17, 0, 0x1000u);
  result = 0;
LABEL_2:
  v6 = *(BYTE *)v4;
  v15 = *(BYTE *)v4++;
  v16 = 0;
  while ( v6 >= 0 )
  {
    v13 = *(BYTE *)v4;
    if ( szUncompressedSize > result )
    {
      *(BYTE *)(szOutBuf + result++) = v13;
      v17[(signed __int16)v5] = v13;
      v5 = (v5 + 1) & 0xFFF;
      v14 = 1;
    }
    else
    {
      v14 = 0;
    }
    ++v4;
    if ( !v14 )
      return 0;
LABEL_13:
    v6 = 2 * v15;
    v15 *= 2;
    ++v16;
    if ( v16 == 8 )
      goto LABEL_2;
  }
  v7 = *(BYTE *)v4;
  if ( !*(BYTE *)v4 )
    return result;
  v9 = 16 * (256 - (unsigned __int8)(v7 & 0xF0)) - *(BYTE *)(v4 + 1);
  v10 = (v7 & 0xF) + 2;
  v8 = (unsigned __int16)v10;
  v4 += 2;
  v20 = v4;
  if ( !(WORD)v10 )
    goto LABEL_13;
  while ( 1 )
  {
    v12 = (signed __int16)v5;
    v11 = v17[((signed __int16)v5 + v9) & 0xFFF];
    if ( szUncompressedSize <= result )
      return 0;
    *(BYTE *)(szOutBuf + result) = v11;
    --v8;
    ++result;
    v5 = (v5 + 1) & 0xFFF;
    v17[v12] = v11;
    if ( !(WORD)v8 )
    {
      v4 = v20;
      goto LABEL_13;
    }
  }
}
For compressed files used fist decompression and after xor. Seems somewhere I have seen it this func.

Edited: Key only = 30 bytes :)

F02EAA3CE4CD1189D1A545AFC343524AA3BE6C82FEF131632F39CFA1FADCF02EAA3CE4CD1189D1A545AFC343524AA3BE6C82FEF131632F39CFA1FADC

Code: Select all

static const unsigned char CO_Key[30] = {
		0xF0, 0x2E, 0xAA, 0x3C, 0xE4, 0xCD, 0x11, 0x89, 0xD1, 0xA5,
		0x45, 0xAF, 0xC3, 0x43, 0x52, 0x4A, 0xA3, 0xBE, 0x6C, 0x82,
		0xFE, 0xF1, 0x31, 0x63, 0x2F, 0x39, 0xCF, 0xA1, 0xFA, 0xDC};
Last edited by Ekey on Sun Oct 21, 2012 2:31 am, edited 1 time in total.
Ekey
M-M-M-Monster veteran
M-M-M-Monster veteran
Posts: 1823
Joined: Wed Mar 31, 2010 6:54 am
Has thanked: 92 times
Been thanked: 1058 times

Re: Core Online

Post by Ekey »

Here tool and dll for test.

Code: Select all

[Usage]
        COTestDecompress <inFILE> <outFILE> <uSize>

[Example]
        COTestDecompress ability.xml ability.xml.unc 3210308
Examples files and source's (c++) included. >>COTestDecompress<< and Library >>COLib<<

Code: Select all

unsigned int __cdecl CO_Decompress(int szOutBuf, unsigned int szUncompressedSize, int szInBuf)
Ekey
M-M-M-Monster veteran
M-M-M-Monster veteran
Posts: 1823
Joined: Wed Mar 31, 2010 6:54 am
Has thanked: 92 times
Been thanked: 1058 times

Re: Core Online

Post by Ekey »

Bin Unpacker.

Code: Select all

[Usage]
        COBINExtract <inFile>

[Example]
        COBINExtract Cvs.bin
Have fun :)
You do not have the required permissions to view the files attached to this post.
chrrox
Moderator
Posts: 2602
Joined: Sun May 18, 2008 3:01 pm
Has thanked: 57 times
Been thanked: 1422 times

Re: Core Online

Post by chrrox »

very cool should have models soon.
Image
Ekey
M-M-M-Monster veteran
M-M-M-Monster veteran
Posts: 1823
Joined: Wed Mar 31, 2010 6:54 am
Has thanked: 92 times
Been thanked: 1058 times

Re: Core Online

Post by Ekey »

Models looks like awesome. You are fast :P
pixellegolas
ultra-veteran
ultra-veteran
Posts: 423
Joined: Mon Aug 11, 2008 11:30 pm
Has thanked: 27 times
Been thanked: 15 times

Re: Core Online

Post by pixellegolas »

Together we are strong and nothing cant be converted :)
Agret
n00b
Posts: 19
Joined: Thu Jan 26, 2006 5:48 am
Location: Melbourne, Victoria, Australia
Has thanked: 1 time
Been thanked: 4 times
Contact:

Re: Core Online

Post by Agret »

Thanks for sharing client files, how did you extract the models? Have you managed to find texture files and bone data?
-
Diol
ultra-n00b
Posts: 3
Joined: Sat Feb 04, 2017 11:37 pm

Re: Core Online

Post by Diol »

Hello!
I'm really interested in getting the client file from this game, all the links are dead
Is it possible to share it again? Much appreciated!! :D
Post Reply