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.
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. ;)
The project (latest script version: ineptpdf 8.4.51) has cost me a lot of nerves, caffeine and my (non-grey) hairs. It took me over 400 hours of hardcore reverse engineering and a lot of trial and error to get it right. Meanwhile my friends were hanging out on the beach, drinking cocktails and getting serious with the chicks. On the other hand, now they are getting accustomed with BP sponsored oil (*hehe*).
The FileOpen support has been added to the existing ADEPT PDF DRM scripts from I♥Cabbages ( click ) so I didn’t have to get serious with the PDF interals (at least not more than needed). It has the same requirements (Python version, PyCrypto, …) as the original script so with Python-related problems you might check out his site, too. Of course the script decrypts ADEPT PDFs (used in Adobe Digital Editions) as well. In that case you need the ineptkey script to get the key file (adeptkey.der). More information on that topic can be found at the specific mobileread forum discussion thread.
The FileOpen plugin is a privacy killer. It checks your network address, your harddisk id, your cpu id, your username, your hostname, when you open and close your document and how many times you already have printed it. Despite the information on their website it doesn’t support AES (at least as far as I have seen). And yes, these methods may remind you of dystopian alternative realities like 1984 or Brave New World (you might want to check out the little story at click ).
You might want to check out the ‘FAQS’ and ‘bug report’ sections for more information.
As for the preachy part: Don’t use it to make illegal copies.
I’m not getting paid for writing the script and of course it is under the GPL. Nevertheless, if you want to help to create more freedom in the Web, it would be a nice gesture to donate a few (symbolic) bucks to organizations like your local Pirate Party (Pirate Party International (harrrrrrr – I want to meet a local pirate)), the EFF (EFF donation site) or, of course, myself => ;-) (BitCoin address: 1HRnjahgD3Tb7AHEjjUuf79mwtqKYTuUFg ) Even a very small donation will help to create more freedom and privacy in the web (legal disclaimer: I’m not related to these organizations in any way nor do I profit from donations).
If you send me proof of your donation (email can be found in the ‘about’-section) I might think about getting a Linux version running as well.
There are rare instances where a PC has a non-standard configuration (like a missing c partition and the system is installed on another drive). If your pdf decryption didn’t work before you might want to check out this update.
Some improvements for non standard conform server responses and a better session cookie handling. If you still have problems with such type of files drop me a line and check the ‘ bug report’ section for further details.
Some curious guys may have already seen it. There are APS and an AES functions in the text which you don’t need for FileOpen.
Tetrachroma and Neisklar are proud to present the world’s first release:
Ineptpdf 8.4.28 has limited (experimental) Adobe Policy Server Support.
Actually, at the moment it only works for German Libraries but with the right ‘PrincipalKey’ (which you can get by sniffing communication between your computer and the server) it should work for a bigger set of files. As it’s experimental no support for that part but for a fraction of users might fi nd itvery interesting.
At that moment I want to say thanks to Neisklar who helped to find the key elements in APS. Thanks for the productive teamwork.
Despite APS support there are numerous small bug fixes.
This update improves the user/password dialog recognition by a fallback option. That’s the way the fileopen plugin is doing it (in my opinion not the best way to do it but the world ‘is what it is’ ;) ).
This might help guys who couldn’t decrypt some of their pdfs before.
This update automates the processing of session/user cookie protected fileopen pdfs. In earlier versions you had to copy/paste the cookie content(s) to get it done.
If you have met the following requirements the script will do thework for you:
Firefox 3.x (or higher)
Firefox was used to activate/download your fileopen pdfs
Firefox has to be closed before running the script (otherwise the cookie database is looked)
If youstill use the Internet Explorer, Safari, Firefox 2.x you don’t have to worry. The script has a fall back option where you still have to do the `handwork`. Nevertheless at least in this case Firefox is the more convenient solution.
Python doesn’t like to execute prints if started as a windowed version (double clicked file with pyw extension). The strange thing is that it doesn’t throw immediately an exception but waits until its 4096 bytes buffer is filled up. That means the IOError exception can happen in several places and masks the real problem.
I suspected if a python script is started in windows mode and it print something it’s just going to /dev/null but Python seems to be very resolute about confusing the programmers.
The message “Error: [Errno 9]Bad file descriptor” is still showing in some configurations. At the moment it’s not clear where does it come from but for some the solution is to wait a second and press ‘Decrypt’ again.
It might be the problem of Python 2.6 UTF processing but nothing more specific is known.
Some publishers produce non-standard conform fileopen pdfs (the length of the key attribute didn’t have the right size). In that case the script didn’t find the key. This version fixes it but I want to make it clear: The fault is on the publisher’s sloppiness and not the script side. ;)
Additional information: Python 2.7 has been released. I tested it and it’s works fine with the script. It’s recommended to use it for new installations.
More information (download links, …) can be found in the FAQs section.
Unsupported Ident4D Decryption, report the bug to the ineptpdf script forum
in the past might want to check out ineptpdf 8.4.11.
Small update: The error can still occure if your login name has capital letters in it (like Peter …). A fix will released soon.
This update took significant more time than expected. FileOpen has implemented more obfuscation without more security.
Status update: Everybody who want to see a complete Linux version might think about motivating me with a donation to EFF or your local Pirate Party. As I got no donation proof at all I’m saving my time, watch soccer and drink my favorite beverage.
Linux fans (and everybody who wants to support freedom in the web) – it’s your turn ;-) …
Sometimes a linefeed at the end of the server response did break the key retrieval routine. That’s fixed. More compatibility for Windows Operating Systems which have no C drive (it’s not recommended to NOT install it on the C drive because some older programs need their C:\ ^^ ) and more support for exotic FileOpen pdfs (but no special cookie processing yet).
Check it out and report about successes and problems.