[sword-devel] How to reverse engineer e-Sword's format (no illegality involved)
greg.hellings at gmail.com
Mon Apr 6 13:33:38 MST 2009
You seem to have hit directly upon the point of it -- the format is
known, not "reverse engineered." The officially distributed versions
have a "password" but that password is only used by Access to block
seeing into the file's structure. It is not used to encrypt or hide
the data in any way. Thus, using the below method is legal and would
not be circumventing the copyright.
Karl was kind enough to share with me his communications with Rick
Meyers on the subject - he made it publicly available on his site, but
if you want it I suggest you talk to Karl directly to get the link for
it. Rick seems to think that having an MS Access password counts as
"encrypting" the data and that any attempt to get past that would be a
breach of the DMCA copyright. However, the fact that a direct Hex
dump of the file, or opening it in Notepad/Emacs/etc reveals the
content in plain-text plus the binary markers associated with the
database markup shows that this is not the case.
For those files which are commercially available from Rick's site, the
user still needs to purchase an installation key/password which would
allow them to install the module. Beyond that, the password is not
required. We're not talking about circumventing the installation
passphrase here, we're only talking about displaying the content that
the user already has installed into a plain, unencrypted, unprotected
The format-converting software is a different issue entirely.
However, it's clear from the communication between Karl and Rick that
Rick Meyers is not at all amenable to working with this. If we move
in this direction, we directly risk alienating him and making him
upset. The question of litigation is, personally in my mind, second
to this consideration. Do we want to risk upsetting him (and having
him possibly change his module format to thwart our efforts) or would
we rather enable our users to have access to their e-Sword modules
through their SWORD front-ends?
On Mon, Apr 6, 2009 at 3:22 PM, Chris Little <chrislit at crosswire.org> wrote:
> Let's ignore EULAs and DMCA violations for a moment (given that we're
> discussing interoperability, and the DMCA specifically permits reverse
> engineering in such circumstances). And let's just consider the quick and
> simple method of reverse engineering e-Sword's "format" without ever
> visiting e-sword.net or installing any software from the site.
> Step 1: Grab a user-created e-Sword module. Here's one:
> Step 2: Unzip it until you get a .bbl file. (The above file is a zip with an
> enclosed self-extracting zip. So use unzip or winzip or whatever on it
> Step 3: The .bbl file is an Access database. Use MS Access or any other
> program capable of reading a Jet database (e.g. anything based on libmdb, as
> mentioned) to analyze the structure. User created e-Sword content will tend
> not to include any passwords (as the official content does), there's no
> possible appearance of impropriety.
> Step 4: Deal with RTF translation and encoding stuff.
> Step 5: Repeat for other module types.
> This doesn't address loading any of the official or paid content, since
> that's all behind an access control (of a sort).
> I'm not _sure_ that building e-Sword resource support into Sword is the
> right way to go. It might be better to build a converter from e-Sword to
> Sword or OSIS. I was working on something like that myself a couple weeks
> ago, but gave up on it when it became clear how poor Perl's cross-platform
> support for database support was. Something built on libmdb or in Java might
> have been more fruitful.
> sword-devel mailing list: sword-devel at crosswire.org
> Instructions to unsubscribe/change your settings at above page
More information about the sword-devel