UMD文件结构解析

转载 2011年01月10日 14:27:00

UMD文件有二种格式类型,一种叫文本格式,另外一种叫动漫格式.
文本格式中的文字流是用ZLIB进行压缩的,今天我们就先来了解一下文本格式的UMD文件吧.

文本格式类弄的UMD文件的组成格式如下:
1.前4个字节组合必须是:0xde9a9b89 (如果不是此格式,即不为UMD文件)
目前不知道这串数字代表什么意思.按照常规别的文件开头前几个字符都是
自己的格式类型.因为UMD没有官方的文件格式说明,所以不知道具体的意思.
相信大致也代表这个意思吧.因为这对解析文件没有任何意义,所以不用去追究!

2.第5到9个字节为:0x23 0x01 0x00 0x08 0x01(必须的)
3.第10个字节为:0x01/0x02.注0x01代表文本格式的UMD文件,0x02代表动漫格式的UMD文件
4.接下来2个字节的随机数.没有任何意义,可以扔掉.(呵呵,记住目前是第12个字节了)
5.第13个字节为:0X23(必须的)
6.解析接下来的2个字节0X02 0X00.即为数据类型.目前数据类型为2.代表的意思是以下的数据代表文件的TITLE.
那下面让我们观注如何解析TITLE吧.(呵呵.目前好像是第16个字节了吧)
7.第17个字节0X00(必须的)
8.解析第18个字节值.该字节的组成是:TITLE的长度*2 + 5.所以你要得到TITLE的长度必须要减五.
另外TITLE的长度为什么要*2,因为UMD是用UNICODE编码文件数据的.
9.注意现在就不能按多少个标准字节记数了,因为文件不一样,TITLE不一样.长度也不一样了.
那就继续看吧.再读TITLE长度个字节,就得到了TITLE的数据.
10.TITLE数据读完后,接下来1个字节是:0X23也就是'#'字符(必须的)
11.解析接下来的2个字节0X03 0X00.即为数据类型.目前数据类型为3.代表的意思是以下的数据代表文件的Author.
12.接下来1个字节是0X00(必须的)
13.接下来解析1个字节,该字节的组成Author的长度*2 + 5.所以你要得到Author的长度必须要减五.

注意!!!大家会发现TITLE和Author的解析过程是一样的,哈哈.你非常厉害.确实解析是一样的.即然这样我就不再重复费话了.因为下面涉及到的解析都是这个流程.

14.下面会解析到year = 4,mouth = 5,day = 6,gender = 7,publisher = 8,Vendor = 9.OK解析完成以上的数据后UMD的基本信息你已经得到了.

 

解析完成vendor数据后,下面会是什么数据呢?让我们继续看吧!!
接下来就是解析内容长度了.
15.紧接着的第1个字节:0X23 也就是'#'(大家会发现,UMD是用#来进行数据隔离的)
16.解析2个字节:0x0B 0x00 数据类型为11
17.接下来2个字节:0X00 0X09(必须的)
18.接下来4个字节:代表内容长度.
19.内容长度解析完成,用分隔符'#'.所以接下1个字节是0X23
20.接下来2个字节代表数据类型.0X83章节偏移量.
21.接下来2个字节:0X01 0X09
22.接下来4个字节:代表一个随机数,目前看来是起同步作用的.
23.接下来1个字节:0X36 也就是'$'钱字符了.哈哈.
24.接下来4个字节:也是随机数.但是和22的随机数一样
25.接下来4个字节:代表偏移量的长度*4 + 9.所以偏移量的长度为:你解析出来的(len - 9)/4.
26.接下来偏移量长度个字节:每个字节代表:每节章节的偏移地址.
27.偏移量数据块解析完成了.接下来又是数据分隔符'#' 0X23
28.接下来2个字节:数据类型0X84 .章节标题
29.接下来2个字节:0X01 0X09(必须的)
30.接下来4个字节:随机数
31.接下来1个字节:钱分隔符
32.接下来4个字节:随机数.二次随机数要相等
33.接下来4个字节:代表 (标题长度*2 + 1) + 9
34.接下来取得每个标题的数据.
分析一下:为了取得每个标题的数据,如果有三个标题显然要取三次.OK.
那如何取呢?
我们先来解释第一个标题是如何取的.
接下来1个字节:标题的长度*2 =  count.
接下来count个字节:就是标题的内容数据.
其他的标题同样的方法.接着取即可.
那标题取完后,接下来的数据会是什么呢?
想必现在应该章节类的数据了吧.好那让我们继续看吧!
35.接下来1个字节:钱字符
36.接下来4个字节:随机数
37.接下来4个字节:数据流的长度 + 9 = count
38.接下来数据流长度个字节就是数据了.(注意目前的注意是ZLIB压缩的数据)
接下来UMD做了安全处理.生成三个随机数.如果随机数有二个相同.处理一些数据.如果不相同就不处理.
39.让我们看看相等的情况吧.下面的数据可能会有下面二种情况的组合出现.
(1)
接下来1个字节:'#'分隔符
接下来2个字节数据类型:0XF1 0X00
接下来2个字节:0X00 0X15
接下来16个字节空数据
(2)
接下来1个字节:'#'分隔符
接下来2个字节数据类型:0X0A 0X00
接下来2个字节:0X00 0X09
接下来4个字节:随机数
40.接下来1个字节:'#'分隔符
41.接下来2个字节:数据类型 0X81 0X00
42.接下来2个字节:0X01 0X09
43.接下来4个字节:随机数
44.接下来1个字节:钱字符
45.接下来4个字节:随机数
46.接下来4个字节: (页面数*4 + 9) = count
47.接下来页面数*4个字节.
48.接下来1个字节:'#'分隔符
49.接下来2个字节:0X82 0X00数据类型//封面图
50.接下来3个字节:0X01 0X0A 0X01
51.接下来4个字节:随机数
52.接下来1个字节:钱字符
53.接下来4个字节:随机数
54.接下来4个字节:封面长度 + 9
55.接下来封面长度个字节

56.接下来1个字节:'#'分隔符
57.接下来2个字节:0X0C 0X00数据类型
58.接下来2个字节:0X0C 0X00数据类型//结束吧!!!
59.接下来2个字节:0X01 0X09
60.接下来4个字节:整个文件长度//
到此为此我们的UMD文件解析完成.

总算是把UMD解析这一块走了一遍。也算是把UMD文件搞清楚了。

 

 

 

http://blog.sina.com.cn/s/blog_5ccfd2d50100bo2x.html

UMD文件结构

概要介绍    UMD文件有三种格式类型,一种叫纯文本格式,一种叫漫画&写真集格式,以及连环画(文字+图画)。本文只涉及纯文本格式的UMD,后面将直接使用UMD指代这类格式的文件。  UMD文件总体上...
  • stormbjm
  • stormbjm
  • 2013年09月03日 09:33
  • 582

UMD格式与解析详解

本文是对于UMD格式结构分析,并针对iOS平台利用Object-C解析UMD文件,给出完整流程与实现。UMD是一种在几年前较为常见的电子书格式,尽管现在它已经逐渐被遗忘了。UMD主要分为3种格式类型:...
  • rhythmkay
  • rhythmkay
  • 2015年05月12日 12:50
  • 1600

umd文件结构深度解剖

[转]umd文件结构深度解剖(附手机umd电子书生成算法类|PHP版) 记得刚开始准备做小说下载站时(UMD格式的电子书应该在Nokia机上是相当的流行吧),研究UMD文件,在网上搜不到UMD文件结...
  • cn1111a
  • cn1111a
  • 2012年09月10日 23:10
  • 592

【转】UMD文件结构(文件解析)

本文引用自绝望的生鱼片《UMD文件结构(文件解析)》这几天研究了一下UMD文件,今天总算可以正确解析了.小庆祝一下!!!记得刚开始准备研究UMD文件时,在网上搜不到UMD文件结构说明.费了好大的劲,用...
  • liuborama
  • liuborama
  • 2011年06月04日 20:46
  • 616

Commonjs,AMD,CMD和UMD的差异

刚开始接触前端语言JavaScript和TypeScript,对其中的模块加载很晕,就研究了一下现有的模块加载方式。分别介绍CommonJS、AMD、CMD、UMD...
  • genglei101
  • genglei101
  • 2016年10月18日 22:42
  • 218

UMD和ECMAScript模块

From:http://snandy.iteye.com/blog/1450665 博客分类: Modular JS 因为 AMD 和CommonJS的糅合,所以先看看 CommonJ...
  • henrypt
  • henrypt
  • 2016年12月06日 09:46
  • 1137

一个简单的PDF文件结构的分析

Adobe的PDF参考告诉我们一个PDF文件可以通过下面4个方面来理解: 1.         对象, 一个PDF文档是由一组基本数据类型组成的数据结构。 2.         文件(物理结构),...
  • nncrystal
  • nncrystal
  • 2013年09月29日 11:34
  • 2365

UMD文件格式解析

前一阵子忽然想给我写的一个编辑器增加阅读UMD文件的功能,就上网查了查相关资料。结合网上的资料我写了一个UMD解析的类(for  VC,其中调用了zlib动态库),完整的类文件上传在我的资源中。以下就...
  • lcchuan
  • lcchuan
  • 2011年07月17日 11:35
  • 820

个人收藏的50部经典UMD电影的ISO镜像文件

       自从买了PSP后,就一直很喜欢下载UMD电影的ISO镜像文件,觉得它很原始,所以很有收藏价值。       PSP自从3.52M33以后全面支持UMD VIDEO ISO文件,只要把IS...
  • nataku
  • nataku
  • 2007年10月08日 11:01
  • 3513

使用AMD,CommonJS和ES Harmony编写模块化JavaScript代码(AMD VS CJS)

AMD vs. CommonJS 竞争,但同样有效的标准本文强调使用AMD要多于CommonJS,但是实际上它们各有用武之地。AMD更适合浏览器优先开发,适用于一步行为,以及简化向后兼容,但是它并不包...
  • lm278858445
  • lm278858445
  • 2016年12月06日 14:36
  • 504
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UMD文件结构解析
举报原因:
原因补充:

(最多只允许输入30个字)