方正CEB电子书总结
循规蹈矩什么意思
经过几天的辛苦跟踪,终于把方正的电子图书馆,以及ceb文件的格式弄明白了,在此纪念一下。
一。ceb文件格式:
ceb文件的数据结构大体是这样的,一个文件头,段标识,段数据,具体含义如下:
1、 22字节ceb文件标识以及版本信息:固定长度,最后一个字表示其后的段标识数目。
2、 段标识:每个段标识由17个字节组成,第一个字节是段标号,其后4个双字,第三个双字为本段在文件中的偏移,第四个双字是本段长度
段标号含义:01--图书内容;变长,打印复制,以及密码设置等都在此段最后。
02-- 不清楚,可以0长度。
03--解密密钥,固定长度,固定值,16字节。
04--解密密钥,固定长度,64字节,每本书都不同。但apabimaker个人版制作的都是一个密钥。专业版应该可以更改,
妇女节短信
其实它是由一个24字节数据按固定可逆算法产生的。
05--加密方式,固定长度,4字节,形式如,0X80000001H,不算高位的80,对应图书cev证书
<ContentKey type="1" EncryptStyle="2">里的type值。
07--图书属性信息。一般0X704H字节。
08--图书目录
土建预算
0a--图书馆书标志。固定长度,4字节,固定内容 0x00000002H。(有它就没有4 5段,这是是否读证书的标志)
10--制作器版本信息
FF--目录头,固定长度,16字节
3、其后就是各段的具体内容了。
二、关于破解:
颜分类1、普通文件书籍:对于设置密码、限制打印、复制内容等权限的ceb文件,注意不是电子图书馆的书,其实很简单,用16进制编辑器打开文件,从01段尾部往上搜索16进制字串 8E BD BD 8E,在第
二次搜到的位置往前,顺序是13个字节的打印复制等限制+8E+29个字节打开密码+8E+29个字节编辑密码+8E+11字节+8E+4字节+8E+4字节+8E,要取消相应的限制,把相应的字节段随便改一个字节就可以了。
2、电子图书馆书籍:
1)、电子图书馆的书籍有借阅期限的限制,并且用证书绑定计算机硬件,搞的很让人郁闷。先说一下电子图书馆的基本保护原理。其实只要是ceb文件其加密原理都是一样的,都需要解密证书,前面解释ceb文件结构的时候已经说的很清楚了,一个普通的ceb文件,具有段结构的04 05段,也就是自带解密密钥,用apabimaker个人版做出的ceb文件,解密密钥是相同的,而电子图书馆里的书籍是没有04 05段的,它的解密密钥,在跟书籍同名的
证书文件里,也就是<ContentKey type="1" EncryptStyle="2">32字节解密密钥</ContentKey >之间的值,说到这有点乱,不是所有的ceb文件加密原理是一样的么,怎么解密密钥一会64字节,一会24字节,这又来个32字节,其实加密解密密钥只有24个字节,普通文件的64字节是经过加密处理的,经过程序解密得到的是,首双字是0x00000018H(十进制的24)+24字节密钥+全零的64字节。而证书的32字节,是为了便于网络传输,对24字节密钥用计算机硬件信息处理,然后3个字节变4个字节后得到的,这样的话,可以用32个字母加密表示24字节16进制数据,(3个16进制字是24位二进制数,而每个字母是6位二进制数,4个字母也是24位)。
2)、一本图书馆的电子书,打开的时候是先检测 有没有04 05段,没有检测0A段,然后读证书,0a段=02是在elibary/voucher目录读证书广州历史
oa段=01在ebook/voucher目录读证书(购买的书)。
第一步,先计算证书文件中<MAC>之前的所有字符,得到一个16字节的16进制值,然后对<MAC>24字节字符<MAC>之间的值按4变3的方式转换得到另一个16字节16进制值,二者进行比较,不相同意味着证书文件被修改过,拒绝打开书籍。
第二步,读证书中的<timestarttime>,<timeouttime>等时间信息,更计算机的当前时间进行比较,以判断图书的借阅时限,过期拒绝打开。  说到这,有人会问,如此说来书籍过期以后,改一下系统时间不是又不过期了么,而实际这么做却不可以。这是apabi电子图书馆的另一防止措施,其症结在注册表中,HKEY_CURRENT_USER\Software\Founder\Apabi Reader\3.0\eLibrary键值下面有一个checksum的55字节二进制数值,其数据结构是 3字节版本+4字节软件上次运行时间+24字节软件安装时间标志+4字节(中文王毅)+4字节软件安装时间+16字节已还书信息,每次打开电子书的时候,软件会先检测checksum,先判断王毅是否存在,当前系统时间比上次运行,以及安装时间是否倒退,用还书信息(C:\Documents and Settings\用户名\Application Data\Founder\Apabi Reader\3.0\eLibrary\ReturnInfo\returninfo.dat)计算的值与注册表保存的是否匹配,有一处不匹配就拒绝打开书籍。
吉克隽逸个人资料
第三步,读证书的ContentKey,Docid,EncryptStyle,用计算机的硬件信息对ContentKey进行处理,得到最终的24字节解密密钥。
至此,读者大概明白了,即使书籍过期不能阅读了,由于证书校验的时候只对<MAC>之前的字符校验,因此可以在<MAC>之后增加一个<timeouttime>段,时间自己随便填,书籍过期的问题就简单解决了。过期问题是解决了,但是有个问题,证书跟书籍是两个文件,没证书书籍就是废物,证书由于跟硬件信息有关,拿到别的
电脑是不能用的,证书可不可以像普通ceb文件那样自带证书呢,答案是肯定的。
三、免费版ceb制作:
每本书的24字节加密密钥是不同的,到它如何转成普通ceb的64字节自带密钥呢,这要用到apabi的另一个软件,apabimaker,最新的apabimaker有个动态库KeyEncrypt.dll,共有3个函数,其中一个输出函数是Encryptkeyinter,它就是把24字节转成64字节的函数。然后就是给加密的图书增加04 05段的问题,本人用汇编语言在apabiread里增加一段代码可以实现在第一次打开书籍的时候自动计算出解密密钥,并改写图书文件,完成整个解密,确切的说不能叫解密,应该叫证书随书带的过程。有编程经验的可以自己写代码,但是插到程序哪个位置,需要自己慢慢到合适的位置。
ok,ceb电子版权保护的破解就算完成。可以不受其限制了,ceb的电子书无论清晰度还是文件大小都是不错的,值得长期保存。
四、后续:
1、 ceb格式方正已经放弃了,下一代是cebx格式,并且前面解密的书籍,每本都有不同解密密钥,一旦密钥损坏,书籍还是打不开,这里有个方法,可以换成apabimaker个人版的公共密钥,也就是让书籍彻底变成免费版,本人没兴趣也没精力研究ceb的内容加密方式,有个简单办法,还是用apabimaker,用其合并功能把解密的图书自己合并一下,证书就变成公用证书了,速度还超快,真正免费的ceb电子书大功告成!!
2、ceb文件格式,纯文本非常小巧,图片的就有点大,偶然发现,用最新版的转换cebx功能,对图片格式的进行转换,大小减少将近50%,注意是用转换功能,不是用cebx虚拟打印机,就是速度有点慢,30兆的文件,转换用了8分钟,大小变成16兆了。但也值得,一劳永逸!
感觉方正的版权保护也就一般般,整个密钥的使用保存,还是有点根本问题,这种设计对破解来说没有什么难度。特别是在他自己提供的软件中,对密钥的加密解密过程都提供给了用户,这对我们这种好奇心比较强的用户来说不是什么好事,否则也就没有这篇总结了!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。