update to 8.4.45: 2nd fix for ident4d problem
Update to 8.4.46: script cleanup and optimizations
Some script optimizations.
It might just run a tick faster. Nothing to think about for hex core cpu enthusiasts but people with older and slower cpus might appreciate it.
Filed under: Reverse Engineering, Update

Update to 8.4.37: script identification change to Adobe Reader
Update to 8.4.48: improved tolerance for false file/registry entries
This update might solve (some of the remaining) ident4d problems.
Filed under: Reverse Engineering, Update

Update to 8.4.49: some small improvements
An update I wanted to post for a few days.
FYI: Not much spare time for me so I probably won’t answer you immediately.
Filed under: Update

Background information: Mac (and Linux) support
Recently I had some positive experience with Mac users so I consider implementing Mac (and Linux) support in the future. And there will be a merging with Apprentice Alf’s improvements (ineptpdf 7.6) so it will be at least usable with ADEPT systems (Adobe Digital Editions). In fact Mac works (for ADE) already if you have pycrypto installed.
The problem with Linux and Mac support is that I need IDA Pro (6.0) for Linux and Mac so it will probably take me a while to save the additional money (both cost at least 419 Euro). Btw. this is not a request for donations but rather an explanation about the stones which can be found in a reverser’s way. ;)
I’ll keep you informed.
Filed under: Update

Update to 8.4.50: New APS-Onleihe Offlinekey and better error messages
If you are member of the rare “Onleihe community” you might want to check out this special update. Additionally there are better error messages (at least sort of ^^).
Make sure you don’t get the beta version of 8.4.50 (as marked in the comments).
Filed under: Reverse Engineering, Update

2010 in review
The stats helper monkeys at WordPress.com mulled over how this blog did in 2010, and here’s a high level summary of its overall blog health:
The Blog-Health-o-Meter™ reads Wow.
Crunchy numbers
A helper monkey made this abstract painting, inspired by your stats.
About 3 million people visit the Taj Mahal every year. This blog was viewed about 33,000 times in 2010. If it were the Taj Mahal, it would take about 4 days for that many people to see it.
In 2010, there were 60 new posts, not bad for the first year! There were 2 pictures uploaded, taking up a total of 17kb.
The busiest day of the year was November 4th with 365 views. The most popular post that day was FileOpen PDF DRM removal.
Where did they come from?
The top referring sites in 2010 were cs.cmu.edu, mobileread.com, locklizard.com, apprenticealf.wordpress.com, and boerse.bz.
Some visitors came searching, mostly for ineptpdf, tetrachroma, ineptpdf 8.4.28, ineptpdf 8.4, and ineptpdf 8.4.30.
Attractions in 2010
These are the posts and pages that got the most views in 2010.
FileOpen PDF DRM removal August 2010
96 comments
Upgrade to ineptpdf 8.3.1: bug fix for the “specified key file does not exist” error June 2010
7 comments
Short FAQ June 2010
5 comments
Update to 8.4.48: improved tolerance for false file/registry entries November 2010
7 comments
Filed under: Reverse Engineering

Update to 8.4.51: automatic APS offline key retrieval
Adobe and the referencing companies got wind of this little script. So they circle through the keys faster than Paris Hilton through her shoes. ;)
Neisklar and 80ka80 wrote some nice scripts to retrieve the keys (thanks so far for the effort). I adopted and modified it and included it in this update.
APS support is still experimental and the key retrieval only works for one major (German) publisher but the keystones are set and I think it’s possible to transfer it to all other companies.
The script update has one disadvantage: If you got an APS pdf and they change the key afterwards you can’t decrypt it (the script always gets the newest key). As you’re using a library system anyway you can just redownload it use the script faster. Anyway that problem will be addressed later.
Filed under: Reverse Engineering, Update

FYI: New FileOpen Plugin version released
Apparently there is a new FileOpen Plugin version. So far it’s only available for Windows and I know of no practical publisher`s implementation.
If that will change I will have to get into it.
We’ll see about that when/if it will happen. ;)
Filed under: Reverse Engineering, Update

Fileopen Session Cookie Support added
Update notice:
# 8.3 – fileopen session cookie support (Tetrachroma)
Filed under: Reverse Engineering, Update Tagged: circumventing, digital revolution, drm, e-book, fileopen, freedom, inept, ineptkey, ineptpdf, Reverse Engineering

Upgrade to ineptpdf 8.3.1: bug fix for the “specified key file does not exist” error
If you don’t have an adeptkey.der file in your script directory, the ineptpdf 8.3 or earlier is throwing a “specified key file does not exist” exception. Of course you don’t need the key file for FileOpen decryption but because of the hybrid structure of the script (supports ADEPT and Fileopen PDFs) this option is needed.
Grab ineptpdf 8.3.1 (or higher) for a clean solution or create an adeptkey.der file in your script directory even if you only use FileOpen PDFs (for FileOpen the file doesn’t have to have any content).
Filed under: Reverse Engineering, Update Tagged: circumventing, digital revolution, drm, e-book, fileopen, freedom, inept, ineptkey, ineptpdf, Reverse Engineering

Upgrade to ineptpdf 8.3.2: improved server result parsing
Sometimes the document sends ‘non-standard’ answers and as a reaction the script throws an ‘Error’ (even with ‘RetVal=1′ or ‘RetVal=2′) as a reaction. This tiny upgrade to 8.3.2 should do the trick.
Filed under: Reverse Engineering, Update Tagged: circumventing, digital revolution, drm, e-book, fileopen, freedom, inept, ineptkey, ineptpdf, Reverse Engineering

Update to 8.4: Ident4D and encrypted Uuid support
“Good evening, Net Citizens. Allow me first to apologize for this interruption. I do, like many of you, appreciate the comforts of every day routine – the security of the familiar, the tranquility of repetition. I enjoy them as much as any bloke. But in the spirit of commemoration, thereby those important events of the past usually associated with someone’s death or the end of some awful bloody struggle, a celebration of a nice holiday, I thought we could mark this June the 18th, a day that is sadly no longer remembered, by taking some time out of our daily lives to sit down and have a little chat.”
The script is now fully functional (excluding ‘Offline Decryption’). At least every FileOpen PDF I tried is working (doesn’t mean that there aren’t any non-working ones left).
Anyway, I just got a cool beer and wish you a happy ‘Net Citizen’ day. ]:) …
Update: This error can still occur if you use Adobe Acrobat (Reader) X. Check out the FAQs for more information.
Filed under: Reverse Engineering, Update Tagged: circumventing, digital revolution, drm, e-book, fileopen, freedom, inept, ineptkey, ineptpdf, Reverse Engineering

Short FAQ
Some Frequently Asked Questions:
– Where do I get the required Python, PyCrypto and PyWin software to run the script?
To run this program install:
* Python 2.7 from http://www.python.org/download/
* PyCrypto from http://www.voidspace.org.uk/python/modules.shtml#pycrypto
* PyWin Extension (Win32API module) from # http://sourceforge.net/projects/pywin32/files/
Make sure to install Python 2.7. It’s highly recommended to use the 32-Bit Python Windows versions (even with a 64-bit Windows system). Don’t forget to download the right versions for PyCrypto and PyWin (in that case the 2.7 versions)
– I have Adobe (Acrobat/Reader) X and it doesn’t work – what do to?
Adobe X has a protected mode which writes registry entries and files to a secure archive instead on the file system. Some had a success by disabling the protected mode. If that doesn’t work use Adobe Acrobat/Reader 9. Open the file at least one time before using the script (otherwise the necessary files won’t be written on the harddisk).
– I only have a Linux PC and/or a Mac. Does the script work for these, too?
The script works for ADEPT e-book pdfs (the ones you can only read in Adobe Digital Editions) on all platforms. FileOpen support works at the moment only for Windows computers. Linux may be working in the future (if there will be more donations). Update: I thought about the Mac support. I still don’t like Steve Jobs (I think he’s an arrogant a**) but why should Mac users suffer from their master’s egomaniac outburst. If I get some money I will buy IDA Pro for Linux and Mac (so far no way to debug it on these machines). Anyway, the ‘donation restriction’ is still in place (and no donations so far).
Let me make it clear: The script works fine for the Mac with the ADEPT encryption (like in Adobe Digital Editions). The restriction only refers to the FileOpen functionality.
– I have problems with the decryption – what can I do?
Make sure you read the ‘Bug Report Blog Section’ very thoroughly.
– I have a password protected FileOpen PDF. Can I open it without the password?
The FileOpen plugin gets the decryption key from the server. Your only chance is to find the key with a brute force attack. If you got a V1 FileOpen PDF (40 Bits key) you might go through it with a fast computer or a gpu. For that you need a fast programming language (like C/C++) and/or a GPU support (like CUDA). You have to write the program code yourself, of course. For V2 FileOpen PDFs (128 Bit) there is no chance of finding the key in a reasonable time. Short and simple: Most of the time – without the User/Password/Session-Key – you can’t decrypt the PDF – even with the script.
– Where’s the download link, damn it?!
No direct download link available but google is very skilled in finding it.
– What’s a FileOpen DRM anyway?
If you don’t know it you probably won’t need it. Maybe a quick Google search will help your brain to get more knowledge. ;)
– Why is it called a ‘hybrid script’?
IneptPDF (8.0 or higher) does support ADEPT and FileOpen PDFs
– Where can I get ‘support’ and deeper information about the whole script, Python installation, …?
Check out Mobileread FileOpen discussion or Mobileread ADEPT discussion (for Python, PyCrypto, … help) and of course i♥cabbages original script site ( i♥cabbages has nothing to do with the FileOpen script improvements)
Filed under: Reverse Engineering, Update

Update to 8.4.1: improved MAC address processing
Some guys had some problems with 8.4.0 and didn’t get the right MAC address (especially PCs with more than one network card). The ineptpdf 8.4.1 is on a mission to solve that problem.
If you got problems with 8.4.0 you might grab this update. If it worked before and now it doesn’t stay at 8.4.0 (and give me a comment line about the error message/problems).
Filed under: Reverse Engineering, Update

Bug Reports: How to proceed with a non-decryptable FileOpen pdf
If you aren’t able to decrypt a FileOpen pdf do the following:
At first check if it is really a FileOpen pdf. If it is an ADEPT pdf (which opens in your Adobe Digital Editions or your e-book reader) you should get support in the special mobileread forum or I love cabbages blog (links can be found above). No direct ADEPT pdf support can be found on this blog.
Get the newest script version and read the FAQs for deeper information (email address can be found in the ‘about’-section).
In most cases you need to use the script on the same hardware you registered/downloaded your FileOpen pdf earlier. You have to check it with Adobe Reader + Fileopen first (does the pdf open?). If the official Adobe Reader + FileOpen Plugin don’t open the document with your hardware configuration the script won’t do either. In that case there is nothing the script can do about it.
The script supporting many kinds of user/session cookie encryption. As I don’t have such files there still might be some combinations which aren’t working.
Despite these restrictions, if you’re sure the fault is on the script’s side follow the following steps:
Check the ineptpdf debug option (make sure the current directory is writable) and send me the textfile (ineptpdf-version-debug.txt) + the not working pdf in a zip or rar file.
The name of the zip or rar archive should be the name you used in your email (e.g. if your email is franky@something.com you should name your archive franky.zip or franky.rar).
If the archive file is bigger than 10 mbytes (hotmail only supports attachments up to 10 mbytes) pack it with a password, attach it to one o f the free file sharing websites (rapidshare.com, …) and send me the link + password.
Under no circumstances post a pdf file link in the comments. Everybody has access to it.
I’m not sharing your privately sent pdfs. Still, it’s perfectly fine if you don’t send the pdf but I most probably won’t find the problem without a real life pdf example.
—
Update: At the moment I have a lot of things to do so I probably can not answer your email requests ASAP. So don’t expect a direct fast answer. I will try to fix bugs with the next release (in my rare spare time).
Especially to those (rare) guys who were adamant that I owe them a quick fix (and it’s somehow my fault that it doesn’t work the way they thought), think again.
I’m aware that those guys exists in the Internet but I’m still somehow p*ssed off by such a behavior. Before getting impolite you might take a look into the script for yourself.
Filed under: Reverse Engineering

Update to 8.4.2: FowP3Uuid fallback file processing
If you get a ‘Cannot find FowP3Uuid’ failure you might want to upgrade to 8.4.2.
Filed under: Reverse Engineering

Update to 8.4.3: improved user/password pdf file detection
The script didn’t ask a password for some rare FileOpen pdf combinations. This should fix (at least some of) the problems.
Reminder: The script* can’t decrypt FileOpen pdfs which need user authorization without the correct user/password or user/session cookie combination.
* In fact no other script can do that. You’re only chance to crack such a file is a brute force method. You can try with 40 Bit encrypted (V1) FileOpen pdfs but you have no chance in getting the key with 128 Bit (V2) FileOpen pdfs. More information about that topic can be found in the FAQs.
Filed under: Reverse Engineering

Update to 8.4.4: small bugfix
Man, I’m on a roll.
This is only a small bugfix but to avoid confusion here’s another (small) revision update. Enjoy!
Filed under: Reverse Engineering, Update
