Remove DRM from Adobe Digital Editions – How-To guide

[updated 17 Oct 2011]

Like Adobe says: “Make reading an engaging experience!” So engage yourself and break free your pdf books, which you bought legally. In the first article “Remove DRM from Adobe Digital Editions – Background” I showed how it was started. Now let’s roll up the sleeves. I will show how to strip DRM protection.

STEP 1 – Find the inept files with code for Python

Find in the internet two text files: ineptkey.pyw — version 5.4 and ineptpdf.pyw — version 8.4.50. Versions can be different, but they should not be too far away from what I have indicated. Save them in your folder, we will need these files a little bit later.

STEP 2 – Install Adobe Digital Editions and activate

I used version 1.7.2 of ADE. Here’s a screenshot below:


And once you are done, you should see this:


STEP 3 — Install Python with Crypto modules

Link the Python distribution Python 2.7 (do not use version 3!, it is not going to work for this task). File name is python-2.7.1.msi in my case.


For the crypto modules go to PyCrypto and choose file dedicated version for Python 2.7 (if you installed Python 2.7 of course, because they should match!): pycrypto-2.1.0.win32-py2.7.exe


Look at your ineptkey.pyw and ineptpdf.pyw files in Windows Explorer, they should look like this now:


STEP 4 — Retrieve your Adept key

At that point it is important that you have not only installed Adobe Digital Editions but also have it activated, otherwise you will get an error “Adobe Digital Editions not activated”:


OK, double-click ineptkey.pyw script, in a second you should see the message “Key successfully retrieved to adeptkey.der”:


Check the folder with the script, there will be the key:


Important to understand, that it is your own key, which can be applied to all books you buy in the future. Therefore, this step ( adept key extraction) is done normally only once. Keep your adeptkey.der in a safe place. Things may change with Digital Editions and the possibility to retrieve the key may not be available anymore.

STEP 5 — Decryption

Double-click ineptpdf.pyw file to see this dialog screen:


Type in required information and click Decrypt. Done! Try to open your pdf book in Acrobat Reader now.

STEP 6 — Cleaning

Sometimes while browsing inside the decrypted books, you may see the Adobe Acrobat error: “There was an error processing a page. There was a problem reading this document (110).”


Or there could be another error: “An error exists on this page. Acrobat may not display the page correctly. Please contact the person who created the PDF document to correct the problem.”


To fix that I use Elcomsoft Advanced PDF password recovery program (APDFPR), as in that case the reason was the Java Script (JS) code left in the document:


You can also try to sanitize your document if APDFPR does not help getting rid of 110 error. Find this option in Acrobat Professional under Tools > Protection (see the screenshots below):

pdf-sanitize-1 pdf-sanitize

If some pages in the decrypted document are still not willing to show, try more gentle scrolling (seriously) and avoid pushing PageDown key, or choose alternative PDF viewing software.

EXTRA STEP (If you have epub document to decrypt)

If you have epub book to decrypt, you should look for ineptepub.pyw file, the latest version tested was 5.2.

78 replies on “Remove DRM from Adobe Digital Editions – How-To guide”

I’m having trouble with step 3, the “crypto modules”.
I’m using a mac and I can’t seem to find a way to install them

It’s working now. I had to install macPorts and Xcode first before being able to install the crypto modules


Thanks for your step by step clearly guide .
Finally, after more thank 5 times trying to remove DRM without success, I got a pdf free DRM ebook.
Now, I just want to share with anyone who has tried to remove DRM with older version of software and fail. My sugestion is always use a clean system with the latest version tools !!!
Otherwise you will fail again and again … I don’t know where the fault is?
I guess the ineptkey.pyw got a wrong key.

Thank you for sharing your ideas, I think it is a valuable suggestion that clean system should be used, thanks again!

Hi, can you PLEASE create a zip file with ALL the necessary components in one place for a PC computer? I can’t seem to get the correct corresponding versions of each software, and I’ve been spending days trying to figure this out. All I want to do is to be able to print my Adobe Digital Editions file. Would be GREATLY appreciated

I am getting this error when i click on “adeptkey.der”

“the file is invalid for use as the following: Security Certificate”

You don’t need to click on that file. Why did you click on that? You double-click on ineptpdf.pyw file and provide your adeptkey.der in the dialog form. That’s it.

Thanks for the great info. However, I have a question regarding the “There was an error processing a page. There was a problem reading this document (110).”

I tried to use APDFPR 5.0 Professional to open the decrypted PDF to fix the error. However, when I open the file with APDFPR. APDFPR says “This document is not encrypted”. How can I use APDFPR to fix the JS error? Thanks.

OK, then there is nothing you can do with APDFPR unfortunately. Try “Sanitize Document” option in Tools for Adobe Acrobat Professional, if you happen to have one.

Hi Astrum,

Thanks for the reply.

I do have Acrobat 9 Professional. How can I “sanitize document”? My problem is after I decrypted the ADE file, some pages couldn’t be read and has the 110 error when I scroll to that page.

I tried to hold the control button when I click the ok button while error shows up.
Acrobat says “Unrecognized object name”

Haven’t tried to sanitize the pdf, as i couldn’t find that option in Acrobat 9.

But foxit can read the decrypted pdf with no error. All pages show up correctly. Thanks for your help =D

For those of you experiencing the Adobe Acrobat error: “There was an error processing a page. There was a problem reading this document (110).”, I have found another working solution.

1. Load the pdf with the error into Foxit PhantomPDF Business (other versions may work, but this is the one I used)
2. Choose Tools/PDF Optimizer .. it will provide you with a number of options for cleaning the document. I used the default options for my PDF, but you can fine tune as necessary
3. Click OK to optimize the PDF
4. You will now have a chance to pick a new name for the optimized PDF and then click Save
5. The resulting optimized PDF should now be readable in Adobe Acrobat

Hope this works for you! :)

I’m having trouble with using ineptpdf.pyw in that it’s not working for me.
I’ve installed python, pycrypto, and pywin and got the adeptkey but when I try to open ineptpdf a dos dialog box blinks and then nothing happens.

Any thoughts on what’s wrong?

It’s alright, I got it working!

Actually I used ineptpdf ver.7.4 rather than the newest one.

Thanks for instructions.

I’ve been following this method to unlock ebooks for while now but a recent book purchased (2011 published) could not be unlocked. I expect Adobe had developed a work-around to this method.

I have a ebook with this error: “There was an error processing a page. There was a problem reading this document (110).”

I tried the various methods that you suggest but still couldn’t solve this. PDF Password Recovery tells me the pdf is not encrypt and Adobe Acrobat, Sanitize Document didn’t work too. It just says “The document could not be sanitized because of errors during the sanitization process”.

Any other suggestion?

It worked for me with an encrypted PDF – thank you so much for your tutorial.

Adobe Digital Edition 1.7.2 is not running on Mac OS 10.7, so this is the only way to read the PDF on the newest Mac OS. I did the decryption on a Windows XP VM on Mac.

I tried the steps in the how to…I could not find the inekey.pyw nor the ineptpdf.pyw, where should they be located?

I then tried downloading the scripts from pastebin, the ineptpdf.pyw seems to work but I cannot obtian the key, when I run the ineptkey.pyw, nothing happens, no file is created, no error message, nothing. Can you help?


I have the same problem that nothing happens when I click on ineptkey.pyw.
I got version 5 with this revision history:
# Revision history:
# 1 – Initial release, for Adobe Digital Editions 1.7
# 2 – Better algorithm for finding pLK; improved error handling
# 3 – Rename to INEPT
# 4 – Series of changes by joblack (and others?) —
# 4.1 – quick beta fix for ADE 1.7.2 (anon)
# 4.2 – added old 1.7.1 processing
# 4.3 – better key search
# 4.4 – Make it working on 64-bit Python
# 5 – Clean up and improve 4.x changes;
# Clean up and merge OS X support by unknown

Until that step ev. worked fine for me with “python-2.7.3.msi” and “pycrypto-2.1.0.win32-py2.7.exe”.

Can you please help me ?

Hi, I have the same problem, I have ineptkey.pyw version 5 (couldn’t find 5.4), python-2.7.3 and pycrypto-2.1.0. When I double click ineptkey, nothing happens, please help

I got the same problem with Dave Veilleux, just double click the files (which script i got from pastebin) and not any of them work, nothing happened :(

no, all of my books are pdf. By the way, im using Win7 Home pre 64bit, ADE, installed Python 2.7.2, PyCrypto 2.3 (already tried 2.1, didnt work either)
Could you please give me some advices bout where to get those working ineptkey.pyw and ineptpdf.pyw files?

Dear Astrum
Apologies for the slow follow-up from my query of 27 Aug last year- a bit distracted and forgot to tick the notify box. The steps worked well for all my DRMs but one. The problem was a monster reference volume ( some 2000+pages – CIM mining engineering handbook) which I would like to carry around on my tablet with other references. The dialog box of the program doing theconversion goes strange during conversion – expands to the full width of my screen showing some sort of very long path – and the ouput pdf created gives the error “There was an error opening document. The file is damaged and could not be repaired”. Any suggestions on this one?

Thanks for that update! I noticed there could be some very specific errors. But when you work with already decrypted document, you can sometimes fix it with other tools. For instance, I used Foxit PhantomPDF: open the book in it, from menu choose Tools > PDF Optimizer , then select all options and click OK. In most cases it help recover file to be read with Acrobat software. So you can try just Foxit free reader, which is not worse than Adobe products. Good luck!

Dear Astrum,
Thanks for this great tutorial. But could you please help me in finding the ineptkey 5.4 & ineptpdf 8.4.5o. I hope these are the latest version? I am unable to find these versions anywhere on the net. Thanks a ton!

Works Great! Now I am able to use my PAID digital book on all of my digital devices. Come on now, this is 2012.. who doesn’t have multiple digital devices? WTF Adobe? & the author who decided to cripple the PDF.

Hi. thank you for your information about solving adobe 110 error. I have tried foxit phantomPDF to solve problem. yea now it does not has an error called 110 but the page which i try to view gives an other error and i could not view the page correctly and the page which i try to view has a missing figures. When I want to compare the page by using foxit reader and adobe acrobet reader, I realize that it has a missing figures. How can I fix this problem. I had try to solve this problem several months ago but it did not.When I read your article I hope that it will work but unfortunately not. I hope you will fix it. Thank you.

Well, I have no remedy for that. Unfortunately, what I’ve learned with these tools and methods you may lose some data inside the document. The good thing — you can read it for ninety-something percent now. Good luck.

Hi astrum

Sorry to bother you but I am having trouble on step 3. I am using a mac with snow leopard I cannot get pycryto to work. is there anyway around this for mac? Any help will be greatly appreciated?

I’ve tried running inept.pyw repeatedly. So far nothing. I copied the code from the entry at, the entry at pastebin doesn’t contain any code.

I was able to follow all instructions, but the new PDF file that was created doesn’t open in Adobe’s Reader X nor the Foxit reader. Error: “There was an error opening this document. There was a problem reading this document (14). ”

Any ideas how to solve this?


Does it work with locklizard protected PDFs? PDFs require online authentication & i need to know if someone has been succcessful in removing DRM using this method /?

i’m getting this error, when i run ineptkey

“Traceback (most recent call last):
File “D:\ineptkey.pyw”, line 198, in main
File “D:\ineptkey.pyw”, line 140, in retrieve_key
vendor = cpuid0()
File “D:\ineptkey.pyw”, line 103, in cpuid0
WindowsError: exception: access violation writing 0x0000000001DC08A0″

I did and got this error:

Traceback (most recent call last):
File “C:\Users\Raya\Desktop\ineptkey.pyw, version 5\”, line 361, in main
success = retrieve_key(keypath)
File “C:\Users\Raya\Desktop\ineptkey.pyw, version 5\”, line 277, in retrieve_key
userkey =, AES.MODE_CBC).decrypt(userkey)
File “C:\Python27\lib\site-packages\Crypto\Cipher\”, line 95, in new
return AESCipher(key, *args, **kwargs)
File “C:\Python27\lib\site-packages\Crypto\Cipher\”, line 59, in __init__
blockalgo.BlockAlgo.__init__(self, _AES, key, *args, **kwargs)
File “C:\Python27\lib\site-packages\Crypto\Cipher\”, line 141, in __init__
self._cipher =, *args, **kwargs)
ValueError: IV must be 16 bytes long

The line
self._aes =, AES.MODE_CBC)
in file aineptepub.pyw contains an error. The function needs an additional parameter, which must be 16 bytes long. Change it to
self._aes =, AES.MODE_CBC, ‘0123456789abcdef’)
and all will work fine.

I doubled click the ineptkey.pyw and got this message:

Traceback (most recent call last):
File “C:\Users\Raya\Desktop\ineptkey.pyw, version 5\”, line 361, in main
success = retrieve_key(keypath)
File “C:\Users\Raya\Desktop\ineptkey.pyw, version 5\”, line 277, in retrieve_key
userkey =, AES.MODE_CBC).decrypt(userkey)
File “C:\Python27\lib\site-packages\Crypto\Cipher\”, line 95, in new
return AESCipher(key, *args, **kwargs)
File “C:\Python27\lib\site-packages\Crypto\Cipher\”, line 59, in __init__
blockalgo.BlockAlgo.__init__(self, _AES, key, *args, **kwargs)
File “C:\Python27\lib\site-packages\Crypto\Cipher\”, line 141, in __init__
self._cipher =, *args, **kwargs)
ValueError: IV must be 16 bytes long

I have downloaded it now, but I am afraid to uninstall version 2 and install version 1.7.2 so I can lose the ebooks I bought it for my study, any clues? I am new to this issue.

I have installed 1.7.2 and then uninstalled version 2, however, I got this message:

Traceback (most recent call last):
File “C:\Users\Raya\Desktop\Removing DRM\”, line 361, in main
success = retrieve_key(keypath)
File “C:\Users\Raya\Desktop\Removing DRM\”, line 277, in retrieve_key
userkey =, AES.MODE_CBC).decrypt(userkey)
File “C:\Python27\lib\site-packages\Crypto\Cipher\”, line 95, in new
return AESCipher(key, *args, **kwargs)
File “C:\Python27\lib\site-packages\Crypto\Cipher\”, line 59, in __init__
blockalgo.BlockAlgo.__init__(self, _AES, key, *args, **kwargs)
File “C:\Python27\lib\site-packages\Crypto\Cipher\”, line 141, in __init__
self._cipher =, *args, **kwargs)
ValueError: IV must be 16 bytes long

Which versions of PYW files do you use?
The proved ones are the following:
ineptepub.pyw 5.2
ineptkey.pyw 5.4
ineptpdf.pyw 8.4.50

ineptepub.pyw is only for epub ebooks format, you propbably have yours in pdf format
You’d better use ver 5.4
Is this your email M******

I got ver 5.4 and ineptpdf.pyw 8.4.50 but I got the following error:
Traceback (most recent call last):
File “C:\Users\Raya\Desktop\PYW\pyw\pyw\ineptkey.5.4.pyw”, line 449, in main
success = retrieve_key(keypath)
File “C:\Users\Raya\Desktop\PYW\pyw\pyw\ineptkey.5.4.pyw”, line 343, in retrieve_key
aes = AES(keykey)
File “C:\Users\Raya\Desktop\PYW\pyw\pyw\ineptkey.5.4.pyw”, line 113, in __init__
self._aes =, _AES.MODE_CBC)
File “C:\Python27\lib\site-packages\Crypto\Cipher\”, line 95, in new
return AESCipher(key, *args, **kwargs)
File “C:\Python27\lib\site-packages\Crypto\Cipher\”, line 59, in __init__
blockalgo.BlockAlgo.__init__(self, _AES, key, *args, **kwargs)
File “C:\Python27\lib\site-packages\Crypto\Cipher\”, line 141, in __init__
self._cipher =, *args, **kwargs)
ValueError: IV must be 16 bytes long

I honestly don’t know, sorry.
These solutions are not supported, so using of exact version which proved to work might help.
I would recommend also to make sure you run this with administrator’s rights.

If anyone have this problem, I’ve solved changing line 113 of version 5.4
self._aes =, _AES.MODE_CBC, “\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00”)

Seems that there’s a but related with this argument that was optional before (regression):

Same thing should be done in the

Just in case any of you still have problems visualizing some of the pages on your PDFs. Use Adobe Digital Editions to open your DRM free files, apparently ADE can handle cetain types of pictures that are shown as errors in Adobe Reader.

I had this problem with an economics book that had lots of graphs but when opened them in ADE it showed them perfectly.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.