UMD文件结构(文件解析)

原文地址:UMD文件结构(文件解析) 作者:Mark
这几天研究了一下UMD文件,今天总算可以正确解析了.小庆祝一下!!!
记得刚开始准备研究UMD文件时,在网上搜不到UMD文件结构说明.费了好大的劲,用反编译工具
才找到相关信息.在这里感谢一下编程浪子给予的帮助,也感谢自己的坚持.因为这不是公司的项目
要求,完全是自己想研究一下.今天在庆祝之愉,想到了可能有些网友正在研究UMD文件.在此总结
一下UMD文件结构,为知识共享出点力吧.也为自己攒点人品吧.

少费话了进入主题了.

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的基本信息你已经得到了.
那就休息休息,在下一文中我会继续介绍如何解析主题内容!!

手机主题 手机铃声 http://www.3GLeader.net

你可能感兴趣的:(UMD文件结构(文件解析))