电子书格式探秘

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 X000)开头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,实际文件还有其它图片、中文索引等内容的压缩,就没有办法分析了。

     注:隔了几年,今天竟然发现有一错误即:8018(写成8010:x000 0000 000x 0000, 应该是:x000 0000 000x x000),已更正。

    mobi 格式就是根据以上a. b. c. 这样压缩和解压的。

 

用delphi编写的解码程序测试通过。插入代码片段不如其他人的博客已删除,其实知道了道理,编写程序解码很简单的。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值