电子书格式探秘
来源:互联网 发布:php重载 编辑:程序博客网 时间:2024/06/05 06:31
1. epub格式我们非常熟悉,就是pk公司的压缩软件压制而成,所以可以用:右键-->打开方式-->压缩软件(很多种内核应该都差不多),开放使用,但核心是顶级机密的。我们不用也分析不了。
2. mobi格式的(仅就英文文本和未加密的文档而言)相对比较压缩比较简单,有时我们看一眼也能猜到是什么内容,mobi的文本压缩大致如下:
a. 英文:开始时一定是完整的单词(因为前面什么都没有),如果有前面出现过的内容>=3 且<=10,用2个16进制数表示:前4位一定是80--BF(X000- ),后12位表示向前索引的值和长度。其中最后3位表示长度,9位右移3位得到的数是向前索引的值。例如: This is a test.可以压缩成(This 8018a test)解释为(X000 0000 000X 0000)开头4位为8表示前面有出现过、后三位为0表示长度为0+3、最多等于(XXX)7+3、右移3位得到(000000XX),也就是说8080这个位置向前数3个字符(空格也是字符)长度为3得到is+空格。
b. 英文空格出现的频率很高,因此如果没有长度3-10的重复,空格就和后面的字符+80(16进制)合成一个字符,如:空格+He(48+80)编码为:C865,空格+he编码成:E865。F765解压为:we。
c. 中文和一些特别符号:看来mobi的压缩不适合中文,或许动态建议词典来索引,分析有难度,通常中文和特别符号用一个16进数表示:前4位一定是0(0000),后4位表示这几个字符没有压缩,如06表示:后面的6个字符没有压缩(照抄)。
2. mobi格式的(仅就英文文本和未加密的文档而言)相对比较压缩比较简单,有时我们看一眼也能猜到是什么内容,mobi的文本压缩大致如下:
a. 英文:开始时一定是完整的单词(因为前面什么都没有),如果有前面出现过的内容>=3 且<=10,用2个16进制数表示:前4位一定是80--BF(X000- ),后12位表示向前索引的值和长度。其中最后3位表示长度,9位右移3位得到的数是向前索引的值。例如: This is a test.可以压缩成(This 8018a test)解释为(X000 0000 000X 0000)开头4位为8表示前面有出现过、后三位为0表示长度为0+3、最多等于(XXX)7+3、右移3位得到(000000XX),也就是说8080这个位置向前数3个字符(空格也是字符)长度为3得到is+空格。
b. 英文空格出现的频率很高,因此如果没有长度3-10的重复,空格就和后面的字符+80(16进制)合成一个字符,如:空格+He(48+80)编码为:C865,空格+he编码成:E865。F765解压为:we。
c. 中文和一些特别符号:看来mobi的压缩不适合中文,或许动态建议词典来索引,分析有难度,通常中文和特别符号用一个16进数表示:前4位一定是0(0000),后4位表示这几个字符没有压缩,如06表示:后面的6个字符没有压缩(照抄)。
以上是mobi格式压缩解压abc,实际文件还有其它图片、中文索引等内容的压缩,就没有办法分析了。
用delphi编写的解码程序测试通过。插入代码片段不如其他人的博客已删除,其实知道了道理,编写程序解码很简单的。
0 0
- 电子书格式探秘
- Epub格式电子书格式
- 制作pDF 格式电子书
- epub格式电子书剖析
- epub格式的电子书
- epub格式电子书剖析 .
- 电子书格式转换
- mobi格式电子书下载
- 手机电子书mobi格式
- 电子书epub,手机格式
- epub电子书格式简介
- 创建CHM格式电子书
- Epub格式电子书格式解析
- 一批文学电子书-手机电子书格式
- HEIF图片存储格式探秘
- 电子书格式转换方法集锦
- 电子书djvu格式简介zz
- 电子书格式问题的本质
- Audio笔记之AudioSystem::getOutput
- 《现代操作系统—中文第三版》读书笔记之——调度算法
- BestCoder Round #21 1002
- 动态规划算法
- 终于解决了贴吧手机版的一个重大BUG
- 电子书格式探秘
- mac搭建svn服务器
- 我的Python爬虫(三):数据的实时监控
- mac搭建svn服务器
- ubuntu14.10下adt bundle安装svn一个可运行的方式
- svn
- NYOJ 115 城市平乱 【无向图 + 链式前向星 + SPFA】
- 《匆匆那年》每一集的标题
- 【android】一套完善的Android异步任务类