How To Remove DRM from MOBI and PRC eBooks
Mobi and PRC are the default ebook formats used by the popular MobiPocket. In 2005, the company was aquired by Amazon, so yes, even the celebrated Amazon Kindle now works with these files. When you buy an ebook online from one of the major retailers, you can be pretty sure you’re getting a Mobi book.
Now, don’t get me wrong. It’s a great format and I’ve enjoyed many wonderful books on my Windows Mobile device using the MobiPocket reader. However, most of these encrypted files are a real pain if you want to throw them on different devices or use other software.
Today, we’ll show you how to crack the encryption of these files, so you can enjoy them however you want. In other words, we’ll show you how to remove drm from MOBI and PRC files. When you’re done, you’ll be able to read them on any system or device, convert those MOBI or PRC ebooks to PDF or any other format you’d like and you’ll – once again – own those books that you’ve payed for.
DISCLAIMER – Stripping the encryption of your ebooks might be illegal in your country of residence. Distribution of decrypted ebooks almost certainly is illegal. MakeUseOf is not responsible for any legal problems you might face. Act wisely, or face the consequences personally if you don’t.
With that said, let’s get going.
MobiDeDRM [No Longer Available]
A tool that has been able to break nearly every mobi/prc encryption is MobiDeDrm, courtesy of pdurrant. This download contains four simple python scripts; versions 0.01, 0.02 and 0.05.
These scripts should run on any OS, given you’ve got the right files installed. So, before we can get started, you’ll have to download Python and a Python extension module like wxPython. What you need to do is to visit this site and you will be greeted by a webpage as seen below:
In both steps 1 and 2, choose the Python and wxPython module according to your operating system.
After these applications are installed, Python scripts should run flawlessly on Windows, Mac and Linux.
Finding Your PID
Your PID is the personal key that your reader uses to encrypt and read the file. We’re going to need this key if we’re to permanently strip the DRM from the ebook.
Because MobiPocket is designed to be used with different devices, the PIDs are out in the open for the user to grab. If your ebook is hosted on another device (i.e. Kindle), simply sync it up with the software before you proceed.
In MobiPocket on your desktop, go to Devices, and you’ll see the PID of said reader in Details. Note that a PID is both device and ebook-specific. Upon transfering your ebook, the PID is also altered, so you’ll need the PID of the right device or the decryption will fail.
When buying a Mobi ebook online, you’re most often asked for your PID before downloading. Obviously, this is the PID you’ll need to use. However, sometimes the process is turned around.
If you’re asked for the store username and password upon adding the book, it hasn’t and won’t be matched with your PID. Instead, you’ll first need to transfer the ebook to another device (e.g. Kindle or Windows Mobile) and use that PID. With me so far?
Once we have the right PID, most of the work is already behind us. We’ll now deploy the scripts to permanently remove the encryption. For accessibility, it’s advised to put your eBook and the python scripts in the same folder.
First, open the Terminal or command screen.
In Windows XP, go to Start – Run, type cmd and hit enter. In Vista, go to Start, type cmd in the search box and hit enter.
The Terminal application is located in /Applications/Utilities for Mac OS X.
And if you’re using Linux, you’ll probably know the location. In most distributions, this will also be located at Applications/Utilities.
Next, you navigate to the folder containing your files. To do this, type cd, followed by the full file path to your folder, and hit enter. In my case, that’ll make for cd /home/simon/ebook. If your filepath contains spaces, put single quotes ( ‘ ) around it.
Now, all you need to do is run the script. Type python mobidedrm005.py infile.mobi outfile.mobi PID and hit enter. Substitute “infile.mobi”, “outfile.mobi” and “PID” with the appropriate filenames, file extensions and the PID respectively. In my case, that’ll make for python mobidedrm005.py ebook.prc outfile.prc 1234567$ab
If you’re experiencing trouble, try putting your PID between single quotes ( ‘ ) or using one of the previous script versions (e.g. mobidedrm002.py). Some ebooks refuse to work with the later versions (strangely) but work perfectly well with the first one.
If all went well, you’ll now be the proud owner of another, unencrypted version of your ebook.
You can sync this with any device you want without too much of a hassle, or convert it to an easier to use format like pdf, rtf or html. Calibre and ABC Palm are great free resources to help you achieve the conversion, and a simple Google search will show even more.
How did that work out for you? Do you like reading your ebooks on one device or prefer the liberty to choose your own? Let us know in the comments.