Libgourou : a Free ADEPT protocol implementation
Two months ago I released a software that can use librmsdk.so from Adobe in order to retrieve ePub files (with Adobe DRM) from ACSM request files. It was the result of a long work of reverse engineering. The main problem with it is that it requires to run on an ARMv7 platform.
When I published it, I felt I can go further, but I was afraid of counter measures or cryptic algorithms that can be used by Adobe. Nevertheless, thanks to all knowledge acquired by my first reverse attempt I decided to try. In the end, Adobe choose to use standard algorithms with no obfuscation (maybe because it's delivered with a full SDK for clients). Plus, the target library wasn't compiled with code optimization \o/.
So I'm pleased to announce the first release of libgourou. It's a Free and Open Source implementation of ADEPT protocol. It supports :
- Account signIn
- Device activation
- ePub download from ACSM request file
In addition to libgourou, two utils acsmdownloader and activate are provided in order to create a new device and download ePub from your favorite UNIX platform (like Linux x86/amd64 !) without any call to Adobe's code (no ADE, no WINE !).
Like RMSDK, it's based on a client/server model were the client has to implement some system specific functions (network, crypto...). It allows the library to be very portable (it's written in C++ 11).
The library by itself is licensed under LGPLv3 and the client (reference implementation) is under BSD license.
I can now tell it : we have a real alternative to ADE for Linux platforms !
Source are available on my forge
Basic usage
Basic usage of utils (you can use precompiled version). First, create a "device"
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD
./utils/adept_activate -u "AdobeID USERNAME"
Then a ./.adept directory is created with all configuration file
To download an ePub/PDF :
./utils/acsmdownloader -f <ACSM_FILE>