Thứ Ba, Tháng Mười 4, 2022
- Quảng cáo -
HomePOSTGuide to netgame assets ripping via Kancolle

Guide to netgame assets ripping via Kancolle

For now, I intend to only cover the extraction of data from SWF files or better known as Shockwave files. These files usually contain sprites, key animations and other information. However there are exceptions such as cases like these whereby the topic is about a game, SWF is basically a container for various game assets and probably a good way to organise how such assets are to be stored within a filesystem as opposed to having several hundreds and thousands of small files. The method could also be easily applied for extracting images, audio or virtually any other data that may be of an interest as once the fundamentals are explained the rest is just a matter of guess work.

The methods I shall discuss from here on in maybe a repeat or reiteration of what others may have said. Therefore please do not make a rant about how you have read the steps before and that it was a waste of blog entry blah blah blah. The purpose of this blog entry was to really collate all the bits and pieces of information into almost a “one-stop shop” for virtually anyone interested.

Of course if you happen to use Sothink’s version you may also want to their manual/help files on how to make it reveal the various assets hidden within the SWF file.

After the file has been downloaded, just open it with your chosen flash decompiler program. The following screenshot is JPEXS Flash decompiler. Here I have opened up a SWF file known as SallyMain.swf and have went into the shapes section on the left panel from within the program.

I have “mogrified” the IP address of the server but the link to the asset is what you will need to throw into your download manager for it to download. If you can specify to the download manager to either output the name of the file as or rename the file to something else after it has downloaded, set it to a filename without the question mark “?” character along with the rest of the unneeded characters appended after the question mark character. This tends to upset JPEXS Flash decompiler when it comes to opening the SWF file later on.

We click on one of the SWF assets, a new split window reveals where the browser has obtained the asset from followed by the name of the file as well as other interesting bit of information such as the version of the file.

Here I have the type of file sorted and instead shown a portion of the screenshot with some of the game assets highlighted in red box. These assets are usually transient assets (which means that they’re bound to change more frequently compared to others) and that these alone does not comprise the entire assets the server has to offer. More data will be revealed depending on which area you visit within the game whilst you have Developer tools open along with it being in Network tab.

In the following screenshot you will notice that I have Network tab opened, and that I have highlighted in red box the game assets which appear to be interesting for download and extraction.

Ideally you should have your web page already on the netgame and that the flash game is loading (not after). In the following screenshot which is using KC3 Kai (a Kancolle viewer and is also a Chrome extension) and the option of playing the game via DMM iframe. The same method may also work with playing via API key.

With Google Chrome/Chromium the moment you open up developer tools panel you may have a random tab opened, tabs are the buttons on the top of the separate window with words like Network, Console, Resources, etc. If you are not on the Network tab, go there.

First off, you will need to open up your developer tools panel. Google Chrome/Chromium and Mozilla Firefox should be F12, alternative shortcut key is Ctrl+Shift+J for Google Chrome/Chromium. Otherwise refer to your browser’s manual/help file on how to make it show assets that the browser needs to load in order to view a page.

The guide will be using Chromium web browser (which is basically the same as Google Chrome but without all the bells and whistles from Google), a command line download manager which can also be used to mirror websites known as “wget” and as well JPEXS Flash decompiler.

Overview

Note: You can actually hover the majority of the URL above and click on the links to see more information
Fundamentals of how the servers are laid out are as follows:

Server IP addresses

The list of server IP addresses that can be found on Servers page tells us the amount of servers that hosts such Kancolle data. In the very least the fundamentals of data mining requires knowledge of these IP addresses so that one can obtain game assets irrespective if the corresponding servers are “on” or not. There are at times certain servers during maintenance receives new game data first compared to others and therefore the need to discover which server gets the preferrential treatment would be beneficial but not a necessity. For every other case, it is possible to obtain game assets from other game servers within the list of servers even though one does not “belong” to the said server.

Visible versus invisible assets

There are two forms of files that are on the server as one can observe from collection of various game assets. There are files that are visible to the public and there are those that aren’t visible to the public. There is not much details about whatever files that are not visible to the public because of the way the servers itself are configured – that is they will either throw forbidden or not found as opposed to showing the listing of a directory (or folder). What we do not know is the backend program that is responsible for telling the outcome of RNG to the player for instance as that program is hidden. What we do know are as follows.

For game assets:

  • SWF – Used mainly as a container for storing varied multimedia with the exception of a few files such as Core.swf which is used to contain API calls. Is also used to interact with the program.
  • MP3 – Used mainly to store voice lines. For various BGM or certain sound elements, they are stored as SWF.
  • PNG – Used mainly to store images such as furniture or various other static images. For furniture that features animations or for newer Shop icons/assets, these are stored as SWF instead.
  • JS – Used mainly to instruct what SWF are to be displayed as well as various other elements on the web page. These however, does not contain anything to do with how the game is to function.
  • CSS – Used mainly to describe the style of the page.

For interaction with the game:

  • (JSON) – For virtually any file that does not contain a filename extension are typically plaintext files that starts with something like, “svdata=” and the details in the {} curly brackets are JSON data.

A majority of the files that the game requests the browser to fetch the assets has an extra parameter, “?version=”. This however is not a way to obtain older copies of the said file from the server but is used internally by the game developers to keep track of the version they are up to for each of those files. It appears that there seems to be some form of concurrent versioning system going on in the backend or something but from the public eye these older versions of the files are not accessible.

Filesystem hierarchy

Information shown with uppercase endings denotes the description and potential purpose for specified directory or folder. These are as of June 2016.

.
└── kcs
     ├── Contains SWF assets that are usually loaded up when the game loads.
    ├── gadget
    │   ├── js
    │   │   ├──Various JavaScript assets for handling either payments or server availability.
    │   └── script
    │   │   ├──Suspected to only contain aesthetic fixes.
    ├── kcscontents
    │   ├── css
    │   │   ├── These files only describe how the elements are to be laid out for Kancolle stuff. Possibly only used for non-flash related content i.e. banners on DMM page, etc.
    │   ├── dictionary
    │   │   └── js
    │   │   │   ├── Contains Dictionary.js which is probably used for glossary on the DMM page itself.
    │   ├── image
    │   │   ├── These are the buttons on the DMM page that you can easily see and click.
    │   ├── information
    │   │   └── image
    │   │   │   ├── Images for use on the DMM page.
    │   ├── news
    │   │   │   ├── Contains style.jss which is used to define how the rules are meant to be displayed on the DMM page.
    │   ├── play
    │   │   ├── image
    │   │   │   ├── Contains images on how to play the game. Not necessarily a game asset.
    │   │   └── js
    │   │   │   ├── Contains Javascripts on how the page is to interact with the user/player.
    │   ├── script
    │   │   │   ├── Contains Javascripts on various aesthetics.
    │   └── twitter
    │       └── image
    │   │   │   ├── Contains a placeholder image for developer tweets to appear on the DMM page
    ├── resources
    │   ├── bgm_p
    │   │   │   ├── Contains various in-game BackGround Music (BGM) but does not contain all BGM. Instead common ones are usually placed here.
    │   ├── image
    │   │   ├── furniture
    │   │   │   ├── chest
    │   │   │   ├── desk
    │   │   │   ├── floor
    │   │   │   ├── object
    │   │   │   ├── wall
    │   │   │   └── window
    │   │   │   ├── These are all furniture related items and are either in PNG format or SWF format.
    │   │   ├── slotitem
    │   │   │   ├── airunit_banner
    │   │   │   ├── airunit_fairy
    │   │   │   ├── airunit_name
    │   │   │   ├── btxt_flat
    │   │   │   ├── card
    │   │   │   ├── item_character
    │   │   │   ├── item_on
    │   │   │   ├── item_up
    │   │   │   ├── remodal
    │   │   │   └── statustop_item
    │   │   │   ├── These contain various Computer Graphics (CG) such as the equipments, equipment fairies, cut-in banners, etc. PNG format.
    │   │   ├── useitem
    │   │   │   ├── card
    │   │   │   ├── icon
    │   │   │   └── icon_p
    │   │   │   ├── These contain various "use" items such as furniture coin boxes, furniture fairies, etc. If they are not in PNG they are in SWF for newer ones.
    │   │   └── world
    │   │   │   ├── These are server banners. PNG format.
    │   └── swf
    │       │    ├── Various in-game resources appears in here. All in SWF format.
    │       ├── map
    │   │   │   ├── Contains maps of the "world" in SWF format.
    │       └── ships
    │   │   │   ├── Contains the CG for the ships in SWF format.
    ├── scenes
    │       ├── Contains various assets in SWF format.
    └── sound
        ├── Voice lines for ships
        └── titlecall
            ├── Voice lines for introduction - Game start screen

Exceptions

  • Of all the servers listed under here, there is actually one more other server that is not noted. However the said server does not actually host players but instead host other game details such as the outcome of the ranking rewards for the past months, the various event banners, etc.
  • Not all the hierarchy will be accessible to the player as some of them may also be hosted on a particular server (see former bullet point) or that it does not really belong as a game asset but rather as some asset to display the information on Kancolle from the DMM page.
  • If using game cache dumps (as listed in the next tab), the contents may not be the same as the directory structure as listed above but the principle is virtually the same.

Đánh giá post
RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments