2024年1月6日发(作者:)

cebx解密手记

2012下半年的某一天,国家图书馆突然升级了,原来能够借阅的方正电子书全部由ceb格式升级为cebx格式了,原来写的可以逃避方正数字版权保护系统(ADRM),获得真正自由传播的ceb格式图书的代码失效了。虽然方正ceb以及cebx格式普及性不强,主要应用于政府机关公文交流、各大学数字图书馆,属于吃财政饭的软蛋,早几年还抱着把ceb cebx格式上升为国家标准,甚至世界标准的痴心妄想,但毕竟实现了本人破解软件的梦想,产生那么一点点成就感,因此对他还是蛮有感情的。现在不让自由看了,心中着实不爽。是怒从心头起,恶向胆边生。好在方正还算善良,apabi reader软件,既没加壳,更没反跟踪,反动态调试。解密恐怕只是早晚的问题,考验的只是耐心而已。

1、初试受挫。拉起od大旗,找了几个特征码搜索一遍,失望。4.4.3新版软件,ceb与cebx图书借阅不是一个插件了,程序代码也差别很大,貌似由api编程,升级为net编程了,看着一堆代码在那比较来比较去,不知道在干啥。一个简单的功能经过net打包,参数检查那叫一个严格,垃圾代码那叫一个多,看的我是心里拔凉拔凉的。 比较一下证书文件,解密密钥好像也长了不少,这下心里更凉了,本来水平就不上档次,上一回抓了个死耗子,这回.。。。。。哎,运气不是一直都有的。放弃吧,于是不再研究cebx格式的加密问题了,看着国图增加的几本新书,除了口水还是口水。

2、意外惊喜。于是彻底放弃了对cebx格式的破解想法。甚至一个网友询问有没有cebx破解补丁,都告之没时间破,其实是没实力,看见net代码就晕。计算机硬件的频频升级,以前是比谁的代码更短,现在是比谁的代码更垃圾,什么世道啊! 某天又在中华书苑借了一本小说,可是过几天打开提示过期了,续借吧,网络不通,tnnd。突然灵光一闪,方正这帮玩意,不会在数字版权保护上只是换张皮就给cebx穿上吧。可能性很大。证书文件是utf编码,读到内存会把时间比如20121231转换成数字,然后比较,进而判断是否过期。马上

调出 图书馆借阅插件,证书的读取,跟字段分离、解密密钥的计算都在其中,果不其然,一查模块间调用,getsystemtime之类的跃然纸上,中断之,前后一跟踪,意外惊喜,堆栈里竟然躺着借阅日期,密钥,校验和 图书id等证书字段。跟踪来到比较语句,o yeah!不过期竟然是mov ax,0,过期是mov ax,1,标志没存在内存,看样只比较一次就散伙,改动一个字节就永不过期啦。测试,如愿!!

3、终成正果。初战告捷,图书过期是不会过期了,但是还是心有恐惧,万一哪天系统崩溃重装,这些书可就是废物了,辛苦花流量整回来的,虽然没全看,还是有点心有不甘。于是对jusfile继续一番跟踪,把elibrary库中进行密钥计算的子程序 在jusfile中反复查找,功夫不负有心人,找到了,解密的24字节加密密钥跟ceb文件大同小异。原理一样。现在考虑的是怎么写到cebx文件中,让他彻底变成自由拷贝文件就可以了。这下又难倒了,cebx格式没仔细研究过。没办法把方正网站上的格式标准down回来,硬着头皮一页一页的看,打开一个加密文件对这看,越看是越高兴,cebx格式不是太难研究么。基本搞清文件格式以后,直奔第五章文档安全。哇塞,密码密钥的算法那叫一个复杂,看到AES三个字母,我是差点吐血,完了,几天的功夫白费了。看来本地加密与DRM加密不再像ceb格式一样,也只在没水平研究复杂的算法,把解密密钥写到本地文件中。既然24字节密钥根本写不回cebx文件,难道解密cebx真的没希望了。哎,命苦啊,没有好的办法,既能保存密钥,又能不改动方正apabi reader程序,保证cebx图书文件的通用性。不过读了cebx的标准文件,也知道了,cebx加密关键在一个叫安全描述符的文件,这个文件是压缩存贮在某处,文件的格式在标准中已经介绍的很清楚了,版权保护,自带密钥都在这个文件里。再次准备放弃破解想法的时候,标准中的一句话让人眼前一亮,“如果既不压缩也不加密只有FF”,这就是说cebx文档支持不压缩,不加密,当然也支持只加密,或者只压缩。想到这,差点笑出声。cebx你完蛋了。跟

踪寻找解密过程,解压缩过程,查找字符复制语句,狐狸尾巴终于漏出来了。寻找合适的插入位置,把解密后的文件内容写到一个新文件里,计算一个新的校验和,再炮制一个文件。哈哈搞定,谁知道reader蹦出 打开文件失败 ,不过,知道离成功已经不远了。找来标准仔细研读,原来在项文件表里存储有每个数据文件的起始偏移,取消加密后文件字节数减少了,偏移出错了,文件末尾补0,既保证校验正确,又保证偏移正确。破解虽然成功,但是还是不像ceb格式破解那么完美无缺,个别文档中夹杂的GB18030字符集破解后显示乱码,有的图片不显示,甚至有的文档导致程序崩溃。继续跟踪研究了两天,发现图片不显示,崩溃是文档分段大于64k后,原破解不完全造成;乱码似乎是方正编程的一个小bug。

至此,cebx脱离了方正的数字版权保护,纵观cebx格式,从整个文档的结构似乎有些先天不足,加密版权保护看似强大,有些设计也给破解留下可乘之机,减少了破解的难度。至于文档权限控制几乎就是个摆设,对于带权限控制的文档,比如打印,拷贝限制,其实只要找一个不加密的cebx文档与加密的文档(要有阅读权限哦)用方正自己的apabi maker 5.0合并一下,啥权限都没了,这玩笑有点开的太大了!!!!