Skip to content

Private (self hostable) servers

Private Servers

There are 3 servers

  • EW (ew, why?): source, mirror
  • Edelstein (in development): source
  • alive-serv (in development): source (I found this while googling)

Development stuff

Asset tree

Sif2 uses unity assetbundles to distribute assets. They also verify the asset hashes, yayyy!!!! (sarcasm).

The initial request containing hashes, filenames, and assetbundle sizes has the name of 387b0126300c54515911bffb6540982d.unity3d

Files are at <FileHash>/<FileName>.ext

Masterdata

The masterdata is shipped under filename 6572ca8348bc566b8cf01d43c4cc1b58.unity3d. Once extracted, all files were encrypted.

You can decrypt the masterdata with the following python function:

def decrypt_mst(bin_file):
    salt = bin_file[16:32]
    pbk = hashlib.pbkdf2_hmac(
        "sha1", "3559b435f24b297a79c68b9709ef2125".encode("utf-8"), salt, 1000
    )
    key = pbk[:16]

    iv_length = bin_file[32]  # = 16
    iv = bin_file[36:36 + iv_length]
    data = bin_file[36 + iv_length:]

    cipher = Cipher(
        algorithms.AES(key), modes.CBC(iv), backend=default_backend()
    )
    decryptor = cipher.decryptor()
    decrypted = decryptor.update(data) + decryptor.finalize()
    return decrypted[:-decrypted[-1]]

All files are then binary serialized. I'll document that part later. Maybe...

Modification

Please see the SIF2 asset modification repository. You will need to download SIF2 assets for the language of your choice.

Downloading assets

Assets can be found on archive.org:

Changing the server URL

TODO...