Pulling Apart ‘Closed Source’

For a while my mom was using Living Cookbook, a .NET-based desktop solution for managing recipes. It’s decent software, fairly stable and feature-filled, but its commercial closed source nature means locked-in users- and no alternative for when you lose your license as a result of a hardware failure (or human error). So when mom called in a mild panic over losing Grandma’s lasagna recipe, I knew I had to take a gander.

No surprise, Living Cookbook exports use a proprietary file extension *.lcb. This implies one of two possibilities: either a custom file scheme, or some sort or archive file.

Holy cow. PKZIP was first introduced before I was born, so this will be pretty easy to pull apart. We can use the standard zip utility to pull it apart into a standard zip archive, then inflate it:

The unzip action will produce two directories: ProgramData and Users. The path structure within these mimics the paths found on the original install location; data within the Users folder contains configuration files for the software’s runtime:

Sadly, no sign of lasagna. ProgramData contains mostly program images and some more XML configurations- and, not surprisingly, within a ‘Database’ folder, the following:

Access. Blegh. Fortunately, the Kexi Project makes getting at this data relatively simple. From here, we’ll need to start researching the database’s structure- except, oh wait, mom just found the Word document she created that has all of Grandma’s recipes. So we’re good.

7 thoughts on “Pulling Apart ‘Closed Source’

    1. Should be relatively easy. Just a matter of working through the database structure, I took a quick look at it, it’s relatively comprehensive but not overly complex. cookbook.freewaf.com? 😀

  1. Your cryptobells is set up to remember me. I’m going to have to change that.

    Decompiling programs to get at the guts is fun. We have a program created for work by work that contains/provides access to all our approved tools. Exe file and subdirectories, but it was compiled through AutoIT. Decompile it for the lulz; it’s interesting to see how they chose to write it.

Leave a Reply

Your email address will not be published. Required fields are marked *