Skip to content

Potential lead regarding savefile encoding (Rewritten data remains in the file) #2

@AffectedArc07

Description

@AffectedArc07

Don't know a better place to file this, so here we are.

When attempting to use the savefile decoding script in this repo for another project, I noticed something weird.

BYOND would read this data from the savefile

name = "DTX-PAI"
description = "A pAI version of DTX"
role = "Socialise with host, probably break down doors."
comments = "N/A"
version = 1

However, the script read this (using just description key as an example)

data entry
 unk: 01
 raw: 02 00 00 00 00 00 00 00 0b 37 39 16 0d 05 e9 f9 e6 f2 cb c3 17 00 00 00 3b 57 4c 14 7e 17 31 30 a2 fd f1 ef d5 c6 d7 af ea bc ba c5 aa a3 58 67 77 35 04 05 7f 51 2b 3d 2f 07 05 1b 19 a7 e4 f1 c7 8b dc d2 b5 bb f1 c2 9c 8e 6f 67 77 3b 46 58 42 1f 3c 39 3f 43 04 1a 0d f3
  key: description
  dat: 01 14 00 41 20 70 41 49 20 76 65 72 73 69 6f 6e 20 6f 66 20 44 54 58 6e 65 2e 20 28 49 6e 63 6c 75 64 69 6e 67 20 74 68 65 20 68 6f 73 74 29 23 76 7d 93 62 79 2c 66 71 70 24 78 74 69 1c 6c 6b 77 70
  dac: . . . A pAI version of DTXne. (Including the host)#v}�by,fqp$xti. lkwp

The important thing to note here, is the (Including the host) part. This used to be part of the description before I rewrote it and made it shorter, but it still exists in the savefile as seen with the decoder.

This means that BYOND doesn't rewrite a savefile when its edited, only changes are appended, which means there is history stored in bytes, presumably waiting to be written over.

This also means there must be "markers" for the data starting and ending. This exact savefile is available at https://affectedarc07.co.uk/pai.sav

I do not possess the knowledge myself to investigate this, but I am flagging it up here as you may be able to figure something out with it.

Edit: This image makes it much easier to visualise
image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions