Does anyone know the structure / format of the rs3 cache with NXT?

Discussion in 'RuneScape Programming' started by methoxetamine_dreams, Jun 2, 2018.

Does anyone know the structure / format of the rs3 cache with NXT?
  1. Unread #1 - Jun 2, 2018 at 6:48 PM
  2. methoxetamine_dreams
    Joined:
    Jun 2, 2018
    Posts:
    2
    Referrals:
    0
    Sythe Gold:
    0

    methoxetamine_dreams Newcomer

    Does anyone know the structure / format of the rs3 cache with NXT?

    I posted this originally in RS3 cheating, but I think it belongs here more. Sorry to the mods / forum browsers for this mistake.

    Looking to write a cache tool... thing.. for RS3, mostly so I can extract a complete list of item ids, but im sure other features are easy to implement once I can figure out the format.

    For some background, I'm on Arch Linux and I use NXT.

    I've done some digging on my own, but have no answers yet.

    Cache files are all found in ~/Jagex/Runescape (that is, /home/<user>/Jagex/Runescape, for the uninitiated)

    In that directory, there are a number of files
    Code:
    λ ~/Jagex/RuneScape/ ls -a | cat
    .
    ..
    GlobalSettings.jcache
    js5-10.jcache
    js5-12.jcache
    js5-13.jcache
    js5-14.jcache
    js5-16.jcache
    js5-17.jcache
    js5-18.jcache
    js5-19.jcache
    js5-1.jcache
    js5-20.jcache
    js5-21.jcache
    js5-22.jcache
    js5-23.jcache
    js5-24.jcache
    js5-25.jcache
    js5-26.jcache
    js5-27.jcache
    js5-28.jcache
    js5-29.jcache
    js5-2.jcache
    js5-3.jcache
    js5-40.jcache
    js5-41.jcache
    js5-42.jcache
    js5-45.jcache
    js5-46.jcache
    js5-47.jcache
    js5-48.jcache
    js5-49.jcache
    js5-50.jcache
    js5-51.jcache
    js5-52.jcache
    js5-54.jcache
    js5-55.jcache
    js5-56.jcache
    js5-5.jcache
    js5-8.jcache
    Settings-1.jcache
    Settings.jcache
    ShaderManager.jcache
    Immediately, what the fuck is a .jcache file? Like, definitely some proprietary internal jagex thing, right?

    All file names include js5, I figured that would give me a way to identify the format, but no dice so far.

    I won't include file contents, as they may contain identifying information, but let's investigate some.

    Code:
        
    λ ~/Jagex/RuneScape/ cat js5-10.jcache
    ---------------;tablecache_indexcache_indexCREATE TABLE cache_index(KEY INTEGER PRIMARY KEY,DATA             BLOB,VERSION INTEGER,CRC INTEGER)--/tablecachecacheCREATE TABLE cache(----------------------------------------MARY KEY,DATA BLOB,VERSION INTEGER,CRC INTEGER)                                                  
                  -----------------------------------------------------------------------------------------------------------------------  ------------------------------------------------------------------------------------------------------------------              
    
    They all look like this. Some are small like this, some are gigantic (600mb+).

    All the dashes here I put in myself, they fill the place of some magic characters that are probably compressed info, or maybe binary data.

    Right off the bat, I notice a few things. This is definitely sqlite (which means *all* the data is stored locally in a sqlite db, so that should be of use?), there's two tables here, and I see "CRC". I want to believe that might somehow refer to CRC-32 hashes, perhaps to validate stored data?

    I tried opening that file in a DB browser, here are some pics.

    There are two tables, each containing an integer key, a binary blob, a 'version' number, and another integer, crc.

    [​IMG]
    Obviously, by the type of CRC we know it's an integer and we can see that below. Now, this could be an integer representation of a crc-32 hash, or it could be unrelated, I'm unsure.
    Here are the two tables, cache and cache_index.
    [​IMG]
    [​IMG]

    Now, the binary blobs in these files seem to all be mangled in some form. There are no raw strings, which again, leads me to the obvious conclusion that this data is compressed, encoded, or both. I have no knowledge of the compression or encoding, consequently, I need some assistance here. I hope someone here can help me out with some reverse engineering skills, and/or black magic fuckery.

    Eagerly awaiting input, if someone can help me figure this out, I'll open-source the tool I write to read items, and I'll at least provide some information on how to utilize this info yourself. No promises, but I could perhaps make a more general purpose tool.

    Hopefully I'll be back with more memes soon.
     
< Need custom Script(OSRS) | [BUYING] Script For Staking Over PAYING [SIMBA/Tribot/Osbot+] >

Users viewing this thread
1 guest


 
 
Adblock breaks this site