Part 2: What do we have to work with?
Table of Contents
This article is part of a series: FlashFiler Data Necromancy
What’s in a backup? #
As stated before, these backup files we had access to weren’t formatted in something easy to use, as say, text (like JSON for example). Teenage me couldn’t figure out how to even open them I think, but the people I hang out with say I’m clevererer now, so surely I can figure this one out.
.zip file shows me… a bunch of
lydia@Athena:~/backup_extract$ ls Activity.FF2 ActivityConditions.FF2 ActivityFibreSales.FF2 ActivityMilkProd.FF2 ActivityObservation.FF2 ActivityProductBatch.FF2 ActivityProducts.FF2 ActivityReproduction.FF2 ActivityTransactions.FF2 ActivityWorkLabour.FF2 BlockDetail.FF2 BlockList.FF2 CoverList.FF2 CropList.FF2 CropSummary.FF2 CropVariety.FF2 D.FF2 ...
Welp, my vague hope for a SQLite extract seems to have gone out the window, but that wasn’t really based in reality anyway.
Experience tells me that these are probably database table extracts, but opening one up in a text editor shows that it’s not exactly plaintext.
There seems to be text data down lower, but I don’t feel confident trying to get anything meaningful out of these directly.
Maybe some google-fu will tell us some more about the file format. FileExt.com seems to think it’s a file associated with FlashFiler, although I’m not very convinced at their claim to be able to decode it in a browser. Sounds like the FlashFiler company, Turbopower, has gone out of business and their site no longer works. Bugger.
Googling the product, the first link is to a SourceForge repo, which has this lovely little tag line:
Hmm unfortunately, I know bugger all about Delphi. They provide
.exe files in the repo though, that’s pretty neat!
I don’t really know what anything here does, and all the internal docs here are the long dead
I clicked around a bit, but I ended up needing to download the PDF documents in the SourceForge repo to get anywhere.
The gist is, you open the
ffserver.exe file, create an “alias” that points to the folder containing your
.FF2 files, and then connect to that server with the
Okay I am pleasantly surprised that this software still works on Windows 11. Maybe the whole backwards compatibility thing is good after all 😂. I can even query the DB using regular old SQL and get some rows back! At this point I thought I had the whole project in the bag.
I put the tools down for a weekend or two.
Plain Text is a Common Courtesy #
Okay so I can read all the paddock records now, in their de-constructed state. I’m a Melbournian, so I think I can make something out of this 😜.
One would think that you can easily export a query’s results to some kind of plaintext output now, right? Like they’re right there in HD? There’s even a “Save” button! But it only saves the query, not the results, which I really don’t care about.
Googling about, there doesn’t really seem to be any existing Database Clients for any language I have any experience in, only for the Delphi IDE, which I don’t really feel like downloading if at all possible. Heck, 20 years later, there’s no guarantees that integration works either. However, with enough searching, and a little bit of swearing, I eventually found a Freeware version of an ODBC Driver on this NexusDB Website I initially thought was unrelated.
They’ll come up later, but for now I won’t look a gift horse in the mouth.
I install it, and with a bit of screwing about with Connection Strings, I eventually get it to connect properly. Score! I mess about with it a bit and see if I can’t get the data to import directly into Excel or something. Excel doesn’t seem to keen to read the data, but it’s an old driver so fair enough. Visual Studio 2019 seems happy enough to connect to it though? The data source explorer bugs out a bit, but it seems happy enough to connect and query the DB, so I rest easy, thinking I am close to home.
Visual Studio is crashing a little while I’m doing this, but I don’t clock it as weird at the time. I put the tools down for another weekend.