关灯
登录后可将在线时长兑换成盟币 ,连续在线 [1] 小时后,每小时 [0.5] 盟币.
×

你已累计兑换次数 0

你已累计兑换积分 0盟币

[图书检索] BookContents.dat文件格式笔记

[复制链接]
wmxtxkfy 发表于 2016-9-21 22:54:06 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
 
真是书到用时方恨少,以前的很多资料常常往硬盘上一扔也不分类整理,想着实在不行就到Readfree上去再搜索一下就可以了。这两天在整理文件格式和书签的相关资料时才发现痛苦,不记得了,重新自己去分析太花时间而且容易出Bug,全盘搜索了好久算是找到了自己当时写的书签生成代码,所以有些东西还是在网上留个记号的好。顺便问一下,哪位朋友还有以前老车的超星文件格式汇总的资料呀,麻烦贴一下,当时懒得写代码,现在终酿恶果……

很早的代码,丑陋是难以避免的,主要是最后的文件头和解压后的格式,能用就好吧。

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

 

精彩评论4

正序浏览
锅锅 发表于 2016-9-21 23:01:35 | 显示全部楼层
 
BookContents.dat文件格式笔记
回复 支持 反对

使用道具 举报

 
shwu1984 发表于 2016-9-22 08:11:05 | 显示全部楼层
 
关注一下技术帖子
回复 支持 反对

使用道具 举报

 
wmxtxkfy 发表于 2016-10-7 01:11:46 | 显示全部楼层
 
看来这个坛子还是资源型的,技术分析的很少,自己留个备档吧,同时还是问一句,这里是老车的1.4版,以前Readfree里1.5之后的版本,有的朋友希望PM一下,谢了先。

吵醒文件加密方式说明
作者:Che Ming
版本:v1.4
时间:2006/09/24
历史:
==== 1.4 ====
[+] PDG v1 Support
[-] 错别字
==== 1.3 ====
[+] Fix 1xH Bugs
==== 1.2 ====
[+] 6xH More Detail
==== 1.1 ====
[+] 28H Support
[+] 6xH Support
==== 1.0 ====
2006/07 First Release.
[欢迎转载,转载时请保留作者及版本信息]
说明:此文提及的吵醒文件为 48 48 开头的文件(即PDG v1, v2 格式),其他诸如 FF D8 开头的标准 JPG,以及 PDF, TXT 等格式不在此问题讨论范围。
PDG V2
------
文件 0x0F 处字节代表此类吵醒文件的格式,其中:
00H 最原始的格式,
正文数据分为:
ColorDepth = 1   代表单色 CCITT G3 2D 压缩图片格式 [OriginalType=00]
        = 18h 代表24位色真彩图像,正文数据通常是 JPG (对应加密后的格式为04H) [OriginalType=4A]
AT&TFORM       代表 djvu 原始数据格式 (对应加密后的格式为05H) [OriginalType=44]
%PDF%         代表 PDF 原始数据格式 (数据采用 Zlib 算法压缩)[OriginalType=46]
01H 最早的加密雏形,简单的对数据区进行 Block Size = 8 的分组加密,加密方法就是 8 个字节一组与 '3.141592' 进行 XOR 操作。
02H 开始采用强度稍高的加密算法,对 PDG Header 中的 KeyData 字段进行 MD5 运算,得到 KEY 之后,调用 TEA 算法对数据区进行分组加密。
03H 加密方式同上,在 MD5 基础上,将 HASH 与 'SUPERSTAR4PDG2.0' 的头8个字符进行 XOR 操作作为 KEY。
04H JPG经过加密形成,解密后可以生成 00H 格式或者 JPG 格式。加密方式同 02H,将 HASH 与 'SSREADER4PDG3.71' 的头8个字符进行 XOR 操作作为 KEY。
05H djVu 原始格式加密而成,解密后可以生成 00H 格式。加密方式同 02H,将 HASH 与 'e#fgF%3*' 进行 XOR 操作作为 KEY。
10H 00H基础上简单将 PDG Header 中的 Width, Height 字段加密。
11H 00H基础上将数据部分字节加密。Group1
12H 00H基础上将数据部分字节加密。Group1
13H 00H基础上将数据部分字节加密。Group1
14H 00H基础上将数据部分字节加密。Group1
15H 00H基础上将数据部分字节加密。Group2
16H 00H基础上将数据部分字节加密。Group2
17H 00H基础上将数据部分字节加密。Group2
18H 00H基础上将数据部分字节加密。Group2
19H 00H基础上将数据部分字节加密。Group3
1AH 00H基础上将数据部分字节加密。Group3
1BH 00H基础上将数据部分字节加密。Group3
1CH 00H基础上将数据部分字节加密。Group3
以上11H-1CH的加密算法为私有加密算法,分为三组,分别是 Group1,2,3,每一组的加密位置及加密字节数不同。
1EH 没见过实物(未进行过实际验证),但在代码中存在解密算法,加密算法为 DEAL。
28H 为吵醒用户自行通过 SSREADER 的新建-〉扫描功能制作的格式。通过 TEA 算法对 10H-2FH 进行加密得到 32 字节的 Key (由于吵醒采用的 DEAL 算法都只使用 128bit 的 Key,所以只有头 16 个字节生效),之后采用 DEAL 算法对数据区进行隔行加密。
6xH 系列为正版有卡用户下载加密而成。此系列加密强度最强,复杂度超乎想象,竟然综合采用了 TEA, Blowfish, RSA, DEAL, IDEA,
DES 等加密算法,计算 KEY 的时候,使用了 MD5, SHA1 等算法。估计吵醒会用的加密算法全部齐上阵,加密算法应用大全啊。
此系列共有 64 65 66 67 68 五种格式,特点是 Header 和数据区同时加密:
Header 加密方法:
1. 64 65 使用 TEA 算法并结合 username 生成 Key,利用 DEAL 算法加密,加密长度为 60h。
2. 66 67 68 使用 TEA 算法但不结合 username 生成 Key,利用 DEAL 算法加密,加密长度为 10h。
数据区加密方法:
1. 65 使用 SHA1 算法对未解密前的 Header 进行计算,同时与 username 进行操作得到 Key。
2. 64 66 67 68 使用 MD5 算法对未解密前的 Header 进行计算得到 Key。
得到 Key 之后,对于 65 格式,采用 IDEA 加密算法进行加密,其它格式仍采用 DEAL 算法进行加密。
6xH 系列的解密必须有 HDDID 参与,它是由服务器根据用户的 HDDKey 计算并返回的,相关信息保存在注册表 ssreaderdata 中。
该数据采用 Blowfish 加密,解密之后 regcode 字段仍然是加密的,其中就包含 HDDID 等重要信息,解密这部分数据,需要使用
RSA 公钥解密算法。
AAH 镜像站点采用的加密格式,加密算法为 DEAL。此格式如果用正版 SSREADER 下载,会被完全破坏,并将格式变为 FFH。
ABH 镜像站点采用的加密格式,加密算法为 DEAL。此格式如果用正版 SSREADER 下载,会被完全破坏,并将格式变为 FFH。
ACH 镜像站点采用的加密格式,加密算法为 DEAL。此格式如果用正版 SSREADER 下载,会被完全破坏,并将格式变为 FFH。
上述 AxH 系列的 Key 的计算方法不同,其中 AAH 最简单,ABH 的 Key 计算过程需要 PDG Header 中的 Width,Height 参与;ACH 的 Key 虽然不需要 Width,Height 参与,但是最终会修改 Width 和 Height 两个字段。加密方式采用隔行加密。
除了上述加密格式之外,PDG 文件还支持一种基于密码保护的加密方式,即所谓的 ServerID,不过
目前很少见到。加解算法同样是 DEAL,只不过计算 Key 的方法略有区别,同时 PDG Header 的
Width 字段被修改。此方法理论上可以应用在各种格式之上,任何格式在解密之前,必须先去除
ServerID 保护,再用相应的算法进行解密。
注意,上述提到的 TEA、SHA1、Blowfish、DEAL 等加密算法都被吵醒私自非法(肯定未经原作者授权)篡改过,不能简单用标准算法套用。
PDG V1
------
此类文件的文件名为下列格式: 100.001, 100.002, ...
此类文件为早期 PDG 格式,等同于 V2 的 00H,加密方法只有一种:根据 0x07 位置的值,在数据区 0xB8 位置之后插入1个或者2个字节。
上述分析基于对 PDG2.DLL 的代码研究,如有不对之处,欢迎斧正。


PDG科普篇
作者:马健
邮箱:stronghorse@tom.com
主页:http://stronghorse.yeah.net
发布:2006.09.26
事先声明:
1、本文仅代表我自己的个人观点,没有必要争论:如果发现硬伤,欢迎指正;如果仅仅是有不同意见,请自己另写一篇去。
2、本文可以转载,但是必须注明转自读书园地,并注明原作者为strnghrs,并且不能对原文作任何删改,否则视为非法盗版。
3、本文写作过程中得到coolman的指正,在此表示感谢!

==========================================================================

新手初到园地,大概最心烦的就是与PDG相关的各种专有名词,包括图像版、文字版、清晰版、大图版、快速版、6xH等等,本文对此作一个简要说明,希望能起到扫盲的作用。

我个人认为,其实上面说的几个概念关系并不复杂,可以用下面的示意图(此图为strnghrs原创,版权所有,盗用必究)说明:
                      PDG文件
              ┏━━━━━━━━┻━━━━━━━━┓
            图像版PDG             文字版PDG
          (文件名无下划线)         (文件名带下划线)
     ┏━━━━━━━━┻━━━━━━━┓         ┃
    清晰版      快速版     大图版    有人说好,有人不要
     ┃        ┃       ┃    可能采用各种加密格式,
  追求的目标     淘汰的目标   比快速版强  解密后是图文混排的PDF
 常为02H、04H   常为05H、AxH、6xH  非加密
解密后是CCITT、JPG  解密后是DjVu  JPG、PNG改名,原版ssreader不认PNG

当然对新手来说这个图理解起来有点困难,下面就加以详细解释。建议在看下文的时候,注意对照此图,以加深理解。

在早期PDG还处于“老子的队伍才开张”的时代,PDG文件都是用扫描后的图像文件产生的,骨子里还是一种图像格式,用官方浏览器ssreader打开后不能搜索、选择、复制文字,要想获得文字信息只能选择OCR。这样的PDG通常称为图像版PDG。

图像版PDG由于是从原书扫描成的,因此完全忠实于原书,包括版式、字体、插图等。但是图像文件毕竟太大,会给服务器、网络出口造成压力,而且不能直接搜索、复制文字也不便于使用,因此后来采用OCR引擎对扫描图像进行文字识别,再经ZIP压缩、按PDG文件格式加密封装等步骤后,出炉了一种骨子里是图文混排的PDF文件的PDG。这种PDG文件在ssreader里阅读时,能够直接搜索、选择、复制其中的文字,放大显示时文字也不会出现锯齿,因此被称为“文字版PDG”,以区别以前的图像版PDG。而在文件名上二者也有区别:图像版PDG文件名是6位,没有下划线;文字版PDG文件名长度不固定,中间有下划线。

到目前为止,没有任何一家OCR引擎敢保证自己的识别率是100%,事实上,我很怀疑未来有任何一家正常的软件公司敢下这样的保证。因此传统上认为文字版PDG不如图像版PDG靠得住,可能会因为OCR的差错而出现错别字,影响阅读、引用。这就是为什么在园地很多人求书时指明不要文字版PDG的原因。不过从我个人的实际经验看,早期纯靠OCR生成的文字版PDG确实存在一些问题,但是后期某些文字版PDG是直接用从出版社获得的原始排版文件生成的,没有OCR环节,不仅没有什么错别字(原书有错的除外),而且完全体现原书版式,还是很值得收藏的。当然,这样的高质量文字版PDG只能靠运气,赶上了就有,赶不上也没办法。

文字版PDG虽然文件短小,但OCR毕竟是一个费时、费力的活儿,把所有书籍全变成文字版PDG显然不太现实。因此为了减轻服务器和网络的压力,在图像版PDG中又出现了清晰版、快速版的区别。换句话说,文字版PDG是不分什么清晰版、快速版的。

按照常规定义,采用300 DPI扫描得到的PDG称为“清晰版”,采用150 DPI扫描得到的称为“快速版”。由于DPI差了一倍,对于同一页书,清晰版的长、宽是快速版的2倍,文件长度当然也要大一些,但是文字、插图会更清晰。在园地区别清晰版与快速版的常规做法是:用ssreader打开,如果按100%显示就是快速版,按50%显示就是清晰版。这种鉴别方法武断了一点,不过在大多数情况下还算有效。而在ssreader内部是这样进行区分的:如果图像宽度超过1200像素,则认为图像是按300 DPI扫描的,否则认为是按150 DPI扫描的。这种区分显然忽略了16开版与32开版的差异。

快速版由于文件大小比清晰版小得多,其清晰度虽然比清晰版差,但通常情况下也不至于因此而造成太大的阅读障碍,因此在某段时期内在园地广为流行,甚至有人声称“宁要快速版,不要清晰版”。但是好景不长,在快速版的真面目被进一步揭开以后,很快就成了“过街老鼠”,如今在园地再无老鸟敢要快速版,以前收藏的快速版PDG也都成了鸡肋:为了追求较高的压缩比,快速版PDG全部采用有损DjVu压缩,而快速版本身的清晰度就不是太好,在DjVu有损压缩时,可能会将笔画残缺的相似字识别为同一个字,造成错别字。相比之下,清晰版全部采用无损CCITT G4压缩,完全忠实于原著。有人曾在园地贴出过实际的PDG文件并进行对比:同一页的清晰版没有错别字,而快速版就出现错别字。

不论是清晰版还是快速版,对于文字页面都按照黑白二值图像进行存储,无法在其中加入灰度或彩色的水印。为了解决“疯狂的盗版问题”,在lr、dx等服务器上就出现了“大图版”这种图像PDG格式:将清晰版PDG缩图,加入水印,存为JPG或PNG格式,但是文件扩展名还是PDG,就是所谓的“大图版PDG”了。因此,所有大图版PDG都是带水印的,虽然水印图案可能不同。大图版有大、中、小三种尺寸,大尺寸的大图版与快速版的面积差不多,但更清晰,而且因为是从清晰版PDG转换过来,转换过程中采用的JPEG、PNG(其实是ZIP)压缩也不会产生错别字,因此在快速版遭到唾弃后,园地大多数人的求书要求是:能有清晰版就要清晰版,没有清晰版就要大图版。沦落到快速版、文字版的多半都有迫不得已的理由,如新手最常见的理由就是“穷”(求书指定清晰版需要更多的币币),有些人则是为了节省磁盘空间(快速版、文字版的文件长度通常比大图版、清晰版更小)。

新手初到园地,在没有见识过真正清晰版的情况下,容易把“看起来很清晰”的大图版当作“清晰版”,在求书区曾经有人为此打过笔墨官司。其实大图版如果没有被做过手脚,还是很容易区别的:
1、如上所说,所有大图版都带水印,而清晰版无水印。最常见的水印是篆刻有“好学近乎知”的印章,此外还有不常见的星星图案等,甚至有人帖出来过用近似于《午夜凶铃》剧照的MM彩照做水印的大图版PDG。当然,这些水印基本上都可以通过图像处理淡化甚至去除。
2、大图版通常是供IE在线浏览,IE支持JPG、PNG,但是官方原版ssreader 4.0只支持JPG,不支持PNG。因此纯文字页面的大图版PDG文件,用原版ssreader 4.0通常是打不开的,只能用园地发布的修改版ssreader,或第三方浏览器如UnicornViewer、ComicsViewer才能打开。鉴别图像格式的另一个方法是用免费的Pdg2Pic打开疑似大图版文件所在文件夹,这个软件会自动检查PDG文件的数据压缩算法。在文件没有被人做过手脚的情况下,如果左下方文件信息显示“PNG”则是大图版,显示“DjVu”是快速版,显示“CCITT”是清晰版,显示“JPG”则不确定。不过随着园地众多格式转换软件的发行,也会有人重新对文件进行处理,造成上述方法的误判。
3、大尺寸的大图版和快速版的画面尺寸差不多大,但是比清晰版还是小得多,而且文字看起来发“晕”(快速版缩图时造成的柔化),没有清晰版锐利。不过这个要有比较才会鉴别。
4、清晰版如果有彩色插图,转为大图版后多半会变成灰度图像,这个也要有比较才能鉴别。因此如果求的是带彩色插图的书,我都会指明只要清晰版,当然求书代价也会相应提高。

由于求书人对清晰版的不懈追求,而且清晰版的出价通常比快速版、大图版更高,因此也出现了一些“伪高清”:把大图版或快速版,甚至是文字版转为图像,然后放大到清晰版的尺寸,再经过某些图像处理,用老鹰或coolman提供的PDG压缩软件,采用CCITT算法压成00H或02H PDG,貌似清晰版的“伪高清”就出炉了。这种伪高清虽然不能把灰度插图再变回彩色,但是看上去没有水印,用原版ssreader能够正常打开,用Pdg2Pic检查时“格式”栏显示的也是CCITT,而尺寸也是清晰版的尺寸,因此对于新手来说很难鉴别,在求书应助时也曾有人为此打过笔墨官司。我个人的看法:伪高清的制作过程注定是有损的,因此制作再精良的伪高清,与真正的清晰版也不能完全等同。不过如果伪高清是从大图版制作出来的,而且原书页面上没有插图,处理后的视觉效果也足以“乱真”,碰到这样的“高仿”也算运气。而如果是从快速版或文字版制作出来的,不论制作技术如何高超,都属于绝对不能原谅的JS行为,因为如前所述,快速版、文字版PDG本身就是不可信的。

至于经常有人提到的00H、02H、6xH等数字,指的都是PDG文件的加密格式代号:早期V1版PDG文件加密比较弱,很快就被人破解,然后D版盘卖得到处都是。为了对付D版,PDG文件定义了全新的V2版格式,所采用的加密技术也不断在更新换代。从大版本看,V2版PDG经历了0xH(包括00H、01H、02H、03H、04H、05H)、1xH(包括11H、12H、13H、14H、15H、16H、17H、18H、19H、1AH、1BH、1CH、1EH)、28H、AxH(包括AAH、ABH、ACH)、6xH(包括64H、65H、66H、67H、68H)几个时代。如果想了解每一版PDG详细的加密算法,可以阅读cheming先生的大作《吵醒文件加密方式说明v1.5》。

需要说明的是,对加密格式的判断要结合PDG文件的版本信息才能判断准确。早期曾经有人在园地发行过一些不成熟的格式检查软件,忽略了PDG版本,机械地按照文件头第16字节处的信息判断加密算法。结果经常有人用这样的软件检查后就惊呼“又有新的PDG加密格式了”,徒增笑柄。现在流行的PdgThumbViewer、Pdg2Pic,及老鹰、coolman的格式检查软件,均避免了这样的错误。

目前6xH可以说代表了PDG文件加密技术的最高成就,成为官方打击D版PDG的利器,因此也受到了最为广泛的关注。但实际上,在PDG文件服务器上是不会有6xH格式存在的:高版本的官方原版ssreader会组合登录用户名、本地硬件信息(通称机器码)等生成加密密钥,在下载的时候,会用加密密钥对下载到的PDG文件进行加密,在本地生成6xH文件。因此,用一台机器下载到的6xH文件,换一台机器就不能读了——两台机器的机器码不一样。解决的办法包括:
1、用cheming的Pizza、老鹰的coffee、coolman的魔术师解密。
2、不用官方原版ssreader下载。如前所述,6xH是原版ssreader下载后在本地生成的。可供选择的软件包括修改版ssreader(去掉6xH加密环节)、BE等。常用的几种软件如老鹰版的超星,CxCandyEnt和Pdgmagician都可以避免从sslib快速版服务器下载,强制下载清晰版的PDG,这样就不用解密了。
3、用官方原版ssreader阅读或下载,但是对网络数据流进行截流,获得加密前的原始PDG。

除了上面说的机器码限制外,PDG中还可能有时间限制:如果用官方原版ssreader阅读本地保存的带时间限制的PDG文件,在超过规定期限后,ssreader就会自动对文件进行破坏。而在文件到期前把它解密掉,也常常成为在园地购买Pizza、coffee、魔术师等解密软件,或刻苦努力翻旧贴,研究报文、嗅探、截流等技术的理由。

带时间限制的PDG虽说有点定时炸弹的感觉,好歹在有效期内还能在本地阅读,而某些镜像服务器上的AxH则只允许在线浏览,不允许下载阅读:用官方原版ssreader下载AxH到本地后,会立刻对文件进行不可恢复的破坏,破坏后的文件用格式检查软件检查通常显示为FFH格式,因此在园地FFH也是“死亡”的代名词。解决的办法就是别用原版ssreader下载,改用截流、第三方下载软件或修改版ssreader。不过到现在为止,我见过的AxH全部都是快速版,看过就删了。

对于没有做过手脚的图像版PDG,PDG的加密格式与图像清晰度密切相关:早期清晰版通常是02H、04H,而快速版是05H,因此早期在园地也用加密格式代号来辨别清晰版与快速版,02H因此成为追捧的对象。不过自从老鹰、coolman发布PDG加密软件后,可以任意更改PDG的加密代号,这招就常常失灵了。

所有格式里比较特殊的是00H,即不加密的格式。这种格式当然也不会有时间、机器码限制。除早期的服务器外,目前新的PDG服务器上已经很难找到这种格式。但不论是清晰版还是快速版,经Pizza、coffee、魔术师解密后都成为00H。图像版00H可以用原版ssreader正常阅读,而且由于在阅读的时候不再需要花时间进行解密,因此显示速度可能比未解密的快那么一点点。不过如果文字版PDG被解密成了00H,用原版ssreader就不能阅读了,因为它认为这世上本不该有未加密的文字版PDG。目前00H的文字版PDG只能用园地提供的高版本UnicornViewer,或老鹰、coolman提供的ssreader增强插件才能阅读。

但是无论如何,现在用官方原版ssreader从sslib下载到的6xH,多半都是快速版(据说很久以前有过清晰版,现在也不排除漏网之鱼的可能)——为了减轻服务器压力,新版官方ssreader在下载sslib时,会自动选择从存放快速版的服务器上下载,这就是为什么经常有人问“用ssreader在线浏览很清晰,下载后再看就不清晰”的原因。而用官方ssreader从主站下载,则可能得到6xH的清晰版,并且这种6xH不受有效期限制(机器码限制还是有的)——听起来不错,可惜主站的书实在少了点。至于解决的办法,前面已经说过了。

所以现在园地新手的迫切愿望,最优先的当然是能够看到不受限制的00H的清晰版,退而求其次就是大图版,实在不行也要摆脱6xH的时间、机器码限制,从此过上安宁、快乐的幸福生活。
回复 支持 反对

使用道具 举报

 
 楼主| qixiangzhi 发表于 2017-3-24 13:02:58 | 显示全部楼层
 
楼主是要图书分类,还是编辑书签文件??
回复 支持 反对

使用道具 举报

 
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


200威望

10980盟币

9关注

3粉丝

146帖子

排行榜
作者专栏

关注我们:微信订阅号

官方微信

APP下载

全国服务热线:

4000-018-018
Copyright   ©2005-2018  博研网Powered by©Myboyan.com    ( 粤ICP备10062441号 )