Thread: What "uKeys" really are

Page 1 of 3 123 LastLast
Results 1 to 10 of 22
  1. #1 What "uKeys" really are 
    Reverse engineering enthousiast
    peterbjornx's Avatar
    Join Date
    Feb 2008
    Age
    29
    Posts
    1,910
    Thanks given
    88
    Thanks received
    539
    Rep Power
    1307
    Infact what you call uKeys are a file consisting of the CRC32's and revision ids of the File Information Tables in cache255, format

    Header:

    BYTE : Cache (needs to be 255)
    SHORT : File (needs to be 255)
    BYTE : Compression (needs to be 0 (uncompressed))
    DWORD : Length ( the total length of the data block)

    Data block:

    DWORD : FIT CRC32
    DWORD : FIT Revision (0 if FIT is format version 5)

    So size of "uKeys" = (numCaches * 8) + 5
    Reply With Quote  
     

  2. #2  
    Reverse engineering enthousiast
    peterbjornx's Avatar
    Join Date
    Feb 2008
    Age
    29
    Posts
    1,910
    Thanks given
    88
    Thanks received
    539
    Rep Power
    1307
    why r noone responding
    Reply With Quote  
     

  3. #3  
    Registered Member

    Join Date
    Feb 2007
    Age
    28
    Posts
    6,414
    Thanks given
    354
    Thanks received
    323
    Rep Power
    5000
    What you want us to say? Good job? uhh


    Menacescape - Runescape Private server
    Come to Menacescape. We've been online for over two years with an active community!
    Reply With Quote  
     

  4. #4  
    Brown
    Guest
    Gj Peter, but I guess Super_ was faster.
    http://www.rune-server.org/showthread.php?t=104375
    Create some tool, which opens the cache, and sort of generates the keys based on the cache.
    When you use defyboys update server and his/super_'s grapper on localhost, you can get the update keys, but this method doesn't seem to work with caches from 2008 and later.
    Reply With Quote  
     

  5. #5  
    Reverse engineering enthousiast
    peterbjornx's Avatar
    Join Date
    Feb 2008
    Age
    29
    Posts
    1,910
    Thanks given
    88
    Thanks received
    539
    Rep Power
    1307
    He has several errors in his, also he does not explain internal file format :
    ubyte servicetype; //14 = game, 15 = update
    ushort unused; //always 00,00 WROOOOOOONG
    ushort clientver; //the client's revision WROOOOOOONG
    SHOULD BE : uint clientver
    Anyway the client sends the request:

    ubyte requesttype; //this is 0 for getfile
    ubyte cacheno; //255 for this
    ushort fileno; //255 again

    The server then responds with:

    ubyte cacheno; //255 for this
    ushort fileno; //255 again

    after that trails the files data... since in new engine, all files are stored in 'containers', we can use the container header to figure out the size of the file. the header is:

    ubyte compressiontype; //0 = none, 1 = gzip, 2 = 'jag' WROOONG
    jag == headerless BZIP
    utribyte compressedsize;
    [ utribyte decompressedsize; OPTIONAL only if compressiontype != 0 ]
    reference tables arent compressed, so the data can be thought of as:

    ubyte compressiontype; //this is 0
    utribyte filesize; //file size
    Reply With Quote  
     

  6. #6  
    Brown
    Guest
    Hmm, I see.
    Reply With Quote  
     

  7. #7  
     

    Vastiko's Avatar
    Join Date
    Dec 2006
    Posts
    5,700
    Thanks given
    300
    Thanks received
    663
    Rep Power
    5000
    You totally confuzzled me explain it to me on EMESEN LATER
    Reply With Quote  
     

  8. #8  
    I_-_I
    Guest
    Quote Originally Posted by Vastico View Post
    You totally confuzzled me explain it to me on EMESEN LATER
    Header:

    BYTE : Cache (needs to be 255)
    SHORT : File (needs to be 255)
    BYTE : Compression (needs to be 0 (uncompressed))
    DWORD : Length ( the total length of the data block)

    Data block:

    DWORD : FIT CRC32
    DWORD : FIT Revision (0 if FIT is format version 5)
    the header just as the name tells the client what the data block applies to, in this the the cache idx255

    just as gzip has a header that tells the decompressors that it is a gzipped file, the header is the identity
    Reply With Quote  
     

  9. #9  
    Reverse engineering enthousiast
    peterbjornx's Avatar
    Join Date
    Feb 2008
    Age
    29
    Posts
    1,910
    Thanks given
    88
    Thanks received
    539
    Rep Power
    1307
    i know but i added as most ppl have it hardcoded in there uKeys array
    Reply With Quote  
     

  10. #10  
    I_-_I
    Guest
    Quote Originally Posted by peterbjornx View Post
    i know but i added as most ppl have it hardcoded in there uKeys array
    nono i was explaining to michael
    neway gj
    Reply With Quote  
     

Page 1 of 3 123 LastLast

Thread Information
Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)


User Tag List

Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •