How to decrypt an Adobe DRM-crippled ePub eBook file

Disclaimer: This information is presented to help you do two things: Pull a backup of your purchased ebooks and get Adobe’s crippled ePub files to interoperate. These files are incapable of interoperating with anything in their crippled form, they only work on a very small set of ePub reader applications and devices, therefore it’s a good idea to uncripple them so you can use any ePub reader you like to view them. With the programs offered here, you can turn the smelly evil zombie death ePubs you bought (i.e. the DRM-crippled ones) into glorious rainbow-farting free ePubs. They’ll still end in .epub, but they will have their shackles removed.

The programs offered here are a result of reverse engineering. Reverse-engineering in order to maintain interoperability is perfectly fine in most jurisdictions, but I’m not a lawyer, so don’t take my advice.

But back to topic. These steps are only valid for Windows, I don’t have the OS X equivalents of the tools, but some googling can reveal them.

  • Install an interpreter for the Python programming language. Use the 32-bit version regardless of your operating system!
  • Install PyCrypto.
  • Install Adobe Digital Editions. Heck, if you’ve bought an ePub, you should already have Digital Editions. Just make sure your purchased books show up in there. Start Adobe Digital Editions. Open a page in one of your purchased books (this may be important so that the decrypter can get to the session key).
  • Download ineptkey_v43.pyw. Run it by double-clicking. This will generate an adeptkey.der file. This is your decryption key.
  • Download ineptepub and run it by double-clicking on it. This should let you choose a .der file and the crippled .epub file you want to decrypt. On the third line, choose a location and filename to save the decrypted .epub file to.
  • Done. You have given your ebook a little freedom. The file is finally more useful than the output of cat /dev/urandom > foo.epub.

Decrypting your ebookis useful in many cases: To make extra backup copies of your library that are sure to work even after Adobe goes out of business, to read your purchased books on an ebook reader that can’t display the crippled version of ePub, or in case Adobe ever tries anything funny and locks you out of the library you’ve paid cash for.

Disclaimer 2: I am not the author of these scripts. I don’t know who is, they’re scattered all over the net and coming from various people who have done all kinds of modifications to them. I thank all of them for helping us fight an idea that is defective by design.

Advertisements

3 thoughts on “How to decrypt an Adobe DRM-crippled ePub eBook file”

  1. Thank you!

    I like to fix my epubs, as the cover image is often substandard (or missing), and there are sometimes grammar and/or spelling errors that I can’t resist changing. Yes, I am anal, and yes, there is probably something wrong with correcting it, but it is very satisfying to go into the book and fix it. Sad as it sounds, and probably is.

    Thanks again,

    Mark

    Like

  2. I totally understand that particular urge 🙂

    I understand that authors rely on their editors to find most spelling mistakes, broken orthography etc. But It’s still interesting how much of it makes it into print or into e-books. I bought Jeff Vandermeer’s City of Saints and Madmen as ePub, and it has at least one example of wrong hyphenation every 10 page flips 😦

    I’m not quite at the stage where I’d go and correct that stuff, but I’m always happy when I catch a mistake.

    About the DRM: DRM should not exist, it’s an insult to consumers!

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s