On 17 8 2003 at 2:51 pm -0400, Ben Kennedy wrote:

>In any case, after several more hours of work, I am beginning to have
>some luck deriving the database format!  Or at least, so far, enough it
>seems to be able to correlate headers and bodies.
>
>I will keep the list updated on my progress.

All,

Losing my mail database has turned around from being a major disaster to
a rewarding exercise in forensics and programming. :-D

I am pleased to announce that after about 5 days of work, I have a
working GUI-based application that will take a PowerMail database
(optionally with severe damage), scan it, produce a navigable summary of
all messages that it has found (and their condition), and then allow you
to extract the ones of your choosing into a PowerMail Exchange file which
can then be re-imported into a good database.

Using this on my damaged database that PowerMail was unable to fix
(simply reporting "DB is corrupt" and stopping cold), I have been able to
recover 14566 of about 15200 messages.  I also know with ease that there
were 8 damaged areas in the file totalling about 186 KB of garbage.  Even
more fortunately, I was able to recover ALL (I believe) of the new
messages since my most recent backup!

Producing this application has been a result of several phases:

1. Examining a known-good Message Database file in a hex editor and
making pages and pages of notes and hypotheses, repeating this for quite
awhile with different messages until I was able to make conclusions about
the various record formats.  In essence, I have clean-room derived a good
portion of the PM database structure.
2. Examining a PowerMail Exchange export of the same known-good database,
and comparing with notes and results derived above, to essentially derive
the PM Exchange file format.
4. Writing code to automate the parsing job at each stage of analysis, to
validate the structure of the PM Database file based on acquired
knowledge, then using the resultant output to further refine the analysis.
5. Bundling all of the above into a Cocoa-based GUI application to allow
easy loading, viewing and exporting of an arbitrarily damaged PM database
file.

To make the application truly usable to the masses will require some
further refinement of the user interface and so on.  Furthermore, with
additional technical information from CTM, I will be able to solidify and
correct my assumptions/conclusions about the data and attributes and how
they are stored, so that the app's proper and accurate functioning will
be theoretically sound in addition to merely being empirically sound.

Thus, I will be contacting CTM privately to share my results and get
their feedback before making this application publically available, and
will hopefully have more to offer everyone next week.  In the mean time,
if anyone else should happen to suffer major database damage due to
filesystem corruption or the like, you can now relax with some confidence
that all is not lost.

On a personal note, I should mention that this has been hugely rewarding
just from a research/analysis/development point of view.  Furthermore, it
gives me even greater confidence in using PowerMail as my mail client of
choice, since I am now more familiar with its inner workings. (e.g. if PM
mysteriously stops working on December 31st and CTM vanishes off the
earth without a trace, I'll still be okay!)

-ben

-- 
Ben Kennedy, chief magician
zygoat creative technical services
613-228-3392 | 1-866-466-4628
http://www.zygoat.ca


Reply via email to