Is there a way to decrypt zblorb file?

My daughter was creating an interactive fiction game for me but lost the source.

I have a zblorb file. I can play the game, but I want to finish developing it.

Is there a way of “disassembling” (for want of a better word) the file. Even just seeing what strings are in it would be a great help?

Yes! ZTools.

I believe you need the txd program. It’s not much use in terms of getting the source code back, but at least you’ll be able to see all the text strings.

Uh, you probably need to get the z-code file out of the zblorb first. That should be possible, but I’m not exactly sure how.

You won’t be able to meaningfully decompile Inform 7 code, but you can extract the texts. If you used a lot of text substitutions even they will be hard to make use of though.

We get this question a lot, and it’s just given me an idea: Inform should include a copy of the source code in the blorb for debug builds. A slightly larger file for the possibility to recover many people’s projects.

2 Likes

I will check it out. Thanks all for the quick responses.

I wrote some text adventures years ago. And I’ve played ‘colossal cave’ and ‘mystery house’.

And ive seen most of the Zork series.

Glulx-strings is a quick tool for dumping strings from Glulx and Z-code files (including zblorb). This is probably easier than using txd, since the strings are the main things you’d be able to retrieve anyway.

If you want to use txd, you may need to extract the z-code from the zblorb archive (it’s been awhile since I used txd, not sure). You can find some tools for working with blorb archives here.

Yeah, this idea has come up before. I’m not sure “debug builds” is the right criterion, though. If you find a playable blorb file and wish you had the source, it’s probably a release build, not a debug build.

I’d like an “Release along with embedded source” option. I can’t argue that this should be the default, but it should be available for people to use.

(Then there’s the question of how much source… include all the extensions? When I’m putting an Inform game into source control, I always include all the extensions.)

1 Like

no luck so far:

I get a message in txd

Fatal:Wrong game or version

All good.

I extracted the strings using gulux-string.

Mr. Plotkin, can’t believe you didn’t mention Babel for getting the Z-code file…

Extracting the z-code out of a blorb is trivial, and not what was being asked about here.

But that needed to happen before anything else, right?

Not necessarily. Some tools are built to handle blorbs. Glulx-strings does, not sure about others.