本文介绍"当当"DRM版权保护技术的原理,手把手教你如何破解"当当"的数字版权保护技术。给阅读者以启迪,仅作为个人研究之用。
---------------------------------
PC客户端破解 方法 1. 用的是flash。进入阅读页面后先下载以一个reader.swf,这是它的阅读程序。每次翻页,都会去get: /datasvr/permissionAuth.do?bookUid=<xxx>&pageNo=<page_no>, 返回约100k,这肯定是它的数据了。HTTP Content-Type: 把cookie存下dangdang.cookie。用这个cookie和wget,向这个地址发请求,存成page_no的swf文件,打不开。问题在哪儿? 2.
异常的文件头!有强烈暗示意义的,
3. 使用万能的google,找到一个Sothink 用Swf ARC4,
好。全裸,而且一屏就全露了。
128位的RC4算法。从page_no.swf的第二个字节开始读取24字节的数据,base64解出来后是16字节。24/4*3=18,所以出现两个"=="。 4. import from import name f f.seek(1) key dec buf buf f.close() fswf fswf.write(buf) fswf.close(); 5.
6.
Android客户端破解 1. 2.
3.
密钥的管理在CertificateManager.java里面。fetchDecryptKey(),简单读下代码后跳转到RsaUtils.java里面。EpubreaderActivity.java中有: key 简单的查找和分析,得以定位到每本书的资料都放在sd卡的/data/data/dangdang/<user.name>/<book>目录下,书是epub格式的。该目录下有一个叫book_key的文件,这个文件里面有个<key>。密钥是128位的AES密钥,用512位的RSA加密。密钥放在手机的/data/data/com.dangdang.reader/shared_prefs/dang_reader_config.xml里面,目录是由Android系统的getSharedPreferences()定义的。里面有base64过的private_key, 4. 1)先买本书,下载到Android手机上。 2)把手机root掉。把手机和SD卡上的两个目录都拷贝到PC上。 3)从文件中拿到该书对应的key,拿到private_key。 4)写段Java程序,用RSA/ECB/PKCS1Padding解密书的key。 5)用7-zip打开epub,ops目录下的文件,除了.ncx和.opf,都是用AES加密的。程序当中把它们解出来。 解密前是这个样子:
6)把程序写成解密epub,生成另外一个epub。好,现在可以选择自己喜欢的设备和阅读软件了。|Adobe:
|
|