码迷,mamicode.com
首页 > 移动开发 > 详细

IOS 设备 iTunesCDB 文件详细解析(一)

时间:2014-08-20 14:07:42      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   os   io   文件   数据   ar   

IOS 移动设备里面有一个媒体数据库文件,这个文件保存了当前设备的媒体信息,比如音乐,视频,电子书,铃声等等,都保存在这里,废话不多说了


iTunesCDB 是一个二进制的文件,其中是用节点来组织的,每个节点都包含特定的信息,比如节点类型,节点头大小,子节点个数等等。有点像xml,但是和xml 又不一样,xml 是闭合的。

bubuko.com,布布扣


用二进制编辑器打开这个文件可以看到

bubuko.com,布布扣

MHBD 头

二进制文件的头四个字节mhbd 是一个标识,根据特定的标识不同的解析,在解析的时候只要关心自己需要的字段,其他不明白的字段读出来之后保存起来就可以了。下面介绍一下我在解析的时候关注的字段

1)   4字节的头标识  mhbd

2)   4字节的头长度

3)  4字节的总长度

如果是解析的话只需要关注这三个字段就可以了。

        m_strIdentify = binaryReader.ReadString(4);
ValidateHeader("mhbd");
m_iHeadSize = binaryReader.ReadInt32();
int iTotalSize = binaryReader.ReadInt32();

itunescdb 文件是从mhbd 头开始的,mhbd 的section就保存了真正的媒体数据,但是这个section的数据是经过了压缩了,就是经过了zip 压缩过了,所以要解析的话就要先把section 内容读出来,然后用zip 解压一下就可以还原数据了。读section 内容的方法

int iSectionSize = iTotalSize  - m_iHeadSize  //获取section 的长度

binaryReader.Seek(m_iHeadSize,SEEK_SET); //将文件指针移动section的开始
byte* pDataBuffer = new byte[iSectionSize];
binaryReader.Read(pDataBuffer,iSectionSize); //读出section


读出来之后用zip的解压一下就可以还原数据了。后面有时间在继续吧



QQ: 2506314894







IOS 设备 iTunesCDB 文件详细解析(一),布布扣,bubuko.com

IOS 设备 iTunesCDB 文件详细解析(一)

标签:style   blog   http   os   io   文件   数据   ar   

原文地址:http://blog.csdn.net/wanliaixie/article/details/38704371

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!