java 解析umd文件_UMD文件结构解析

UMD文件结构解析

(2009-02-23 16:39:48)

标签:

umd总结

周末二天没有上BLOG,哈哈,玩的相当爽。今天还是把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://www.3GLeader.net

分享:

a4c26d1e5885305701be709a3d33442f.png喜欢

0

a4c26d1e5885305701be709a3d33442f.png赠金笔

加载中,请稍候......

评论加载中,请稍候...

发评论

登录名: 密码: 找回密码 注册记住登录状态

昵   称:

评论并转载此博文

a4c26d1e5885305701be709a3d33442f.png

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值