一种NANDFlash存储芯片的元数据格式识别方法

文档序号:6771003阅读:219来源:国知局
专利名称:一种NANDFlash存储芯片的元数据格式识别方法
技术领域
本发明涉及一种手机芯片数据识别方法,特别涉及一种用于识别手机NAND Flash 存储芯片中元数据格式的方法,用于手机取证技术领域。
背景技术
随着移动通信技术的不断发展以及提供的服务水平和服务种类的不断提高,手机 日益成为人们工作生活中不可或缺的联系工具。与此同时,利用手机进行诈骗、售假、造谣 等违法犯罪活动也日益猖撅。手机取证正是打击这类犯罪的一个有效手段。手机功能的增强使得手机内置存储芯片的容量不断增大,因此NAND Flash芯片逐 渐成为手机内主要的非易失性存储器件。NAND Flash中存储手机的固件信息和短信、通话 记录、多媒体等用户数据,是手机取证的主要对象。目前手机内置NAND Flash芯片中取证数据获取的主要方式有两种,一种是通过 USB接口的数据线与PC机相连获取芯片的逻辑镜像(比如FAT文件系统数据),另一种是 利用底层芯片访问技术获取其物理镜像(即NAND Flash内的原始二进制数据)。但那些被 删除数据和被犯罪分子故意隐藏数据不能通过逻辑镜像的方式获得,使手机取证的效果大 大折扣,因此对物理镜像的分析研究成为手机取证的研究热点。与磁盘的存储布局不同,NAND Flash以页为单位读取数据,以块为单位擦除数据。 为了模拟磁盘以扇区为单位的存储形式,NAND Flash页被划分成多个扇区,每个扇区大小 是512+16字节,其中512字节存储有效数据,16字节存储坏块信息、ECC校验数据和逻辑地 址信息等存储管理数据,又叫带外数据或元数据,存储元数据的区域叫spare area。现在主 流芯片的页大小是512+16字节或2048+64字节,即包含1个或4个扇区,对应的物理镜像 格式如图1。图1(a)中,页大小为5 字节,图1(b)中,页大小为2112字节。物理镜像必须转换为逻辑镜像(即文件系统映像)后,才能获取到手机所使用的 各种数据文件。Spare area中的元数据决定了逻辑镜像和物理镜像的对应关系。NAND Flash芯片中元数据格式由手机操作系统的底层软件代码所使用,不同手机所使用的元数 据格式存在很大的差异。因此,获取NAND Flash芯片的元数据位置和格式,成为对物理镜 像进行取证分析的关键问题。而现有技术中,缺乏成熟的可用于识别手机NAND Flash芯片 存储结构和元数据格式的方法。

发明内容
本发明的目的是为解决在未知手机NAND Flash芯片内元数据格式及其含义的情 况下,难以对手机物理镜像进行取证分析的问题,提出一种识别Flash芯片存储结构和元 数据格式的方法。本发明提供了一种NAND Flash存储芯片的元数据格式识别方法,包括以下步骤一、首先辨别物理镜像中元数据区和有效数据区的排布规则由于目前手机内置 NAND Flash芯片的主流存储结构是每512/2048字节有效数据和16/64字节元数据相间分布,则区分物理镜像中有效数据区和元数据区排布规则的步骤是(1)以可读方式打开物理镜像文件;(2)读指针定位到物理镜像的第512字节处,读取16字节数据;统计16字节数据 的取值,统计连续多个字节取值等于OxFF的字节个数n,并记录这些字节的位置范围;(3)若η大于等于设定的门限值min则读指针跳过后续的512字节,再读取16字 节数据,继续统计连续多个字节取值等于OxFF的字节个数η并判断η是否大于等于min,同 样记录下这些OxFF值的位置范围;若η大于等于min并且连续OxFF值的位置范围相同则 重复本操作,直到重复次数达到3次为止;在此过程中若有1次判断结果为否,则说明物理 镜像的数据排布方式不是512+16字节的形式,于是操作跳转到步骤;否则说明物理镜 像是512+16字节的数据排列格式,即该nand flash芯片的页大小是512+16字节;(4)读指针定位到物理镜像的第2048字节处,读取64字节数据;统计64字节数 据的取值,统计连续多个字节取值等于OxFF的字节个数n,并记录这些字节的位置范围;(5)若η大于等于设定的门限值min2,则读指针跳过后续的2048字节,再读取64 字节数据,继续统计连续多个字节取值等于OxFF的字节个数η并判断η是否大于等于 min,同样记录下这些OxFF值的位置范围;若η大于等于min2并且连续OxFF值的位置范围 相同则重复本操作,直到重复次数达到3次为止;在此过程中若有1次判断结果为否,则说 明物理镜像的数据排布方式既不是512+16字节的形式也不是2048+64字节的形式;否则说 明物理镜像是2048+64字节的数据排列格式,即该NAND Flash芯片的页大小是2048+64字 节。二、在确定NAND Flash芯片数据排布格式的基础上,识别16/64字节中逻辑地址 字段和校验码字段的位置为了满足手机取证过程中保护数字证据的操作原则,需要把取证目标手机相同型 号的另外一个手机作为识别其NAND Flash芯片元数据格式的参考手机,识别16/64字节中 逻辑地址字段和校验码字段位置的具体步骤是(1)随机生成一些数据文件存储到参考手机的内置NAND Flash芯片上,数据文件 大小尽可能占满NAND Flash的存储空间;(2)分别获取NAND Flash芯片的物理镜像文件和逻辑镜像文件;(3)根据步骤一确定的NAND Flash数据排布格式,计算物理镜像文件每528/2112 字节数据中前512/2048字节的MD5哈希值,记录下物理页号及其对应的MD5值;(4)根据步骤一确定的NAND Flash数据排布格式,计算逻辑镜像文件每512/2048 字节数据的MD5哈希值,记录下逻辑页号及其对应的MD5值;(5)按照逻辑页号由小到大的顺序,根据相同数据段的MD5值相等的原则查找每 一个逻辑页所对应的物理页,记录下逻辑页号、物理页号及对应的sparearea内容即16/64 字节元数据的内容;(6)按照逻辑页号由小到大的顺序,选择spare area内容中有规律逐一递增的 字段即为逻辑地址字段;NAND Flash写操作的特性使得同一逻辑页可以对应多个物理页, 在识别spare area内逻辑地址字段位置的过程中,需每个逻辑页选择一个对应的物理页 spare area p^^ ;(7)分析同一逻辑页所对应的多个物理页的spare area内容,选择那些对应位置上内容相同的随机数字段即为ECC校验码字段。有益效果采用本发明方法可以在未知手机内置NAND Flash芯片的元数据格式及其含义的 基础上,正确识别出NAND Flash芯片物理镜像的数据排布规律并解释其spare area内一 些关键元数据的字段位置及其含义。利用这些信息,可以从物理镜像中翻译出NAND Flash 芯片数据在不同时刻的逻辑镜像,从而利用现有的手机取证工具分析出那些删除或隐藏的 犯罪证据。本发明方法通用性强,既增加了手机取证可研究对象的范围又扩展了手机取证 内容的深度,具有极大的实用价值。


图1为主流NAND Flash芯片的物理镜像数据排布格式;其中(a)为物理页大小为 528字节的数据排布格式,(b)为物理页大小为2112字节的数据排布格式;图2为本发明所述方法的流程图;图3为识别物理镜像数据排布格式的程序流程图;图4为基于MD5值查找逻辑页和物理页对应关系的程序流程图。图5为实施例中逻辑页号、物理页号和相应spare area内容的对应关系截图;图6为spare area内容中分析获得的逻辑地址字段和ECC校验码字段。
具体实施例方式下面结合附图详细说明本发明的优选实施方式。本发明不仅限于以下实例,凡是 利用本发明的设计思路都进入本发明的保护范围之内。本实施方式实现了一种NAND Flash存储芯片的元数据格式识别方法,如图2所 示,包括以下步骤一、首先辨别物理镜像中元数据区和有效数据区的排布规则;该步骤的流程图如图3所示。在该步骤的实现中,设定的门限值min为4,min2为 20。二、在确定NAND Flash芯片数据排布格式的基础上,识别16/64字节中逻辑地址 字段和校验码字段的位置。该步骤中基于MD5值查找逻辑页和物理页对应关系的程序流程 图如图4所示。在本实施方式中选用的识别逻辑地址字段的字段分析方法如下(1)统计spare area内每个字节的取值范围及每个取值的个数,例如统计第1个
字节取值等于0的个数,等于1的个数,等于2的个数......等于255的个数;统计第2个
字节取值等于0的个数,等于1的个数,等于2的个数......等于255的个数,依次类推。
找出取值均勻分布的字段位置,比如第1字节取值范围从0到255并且每个值的个数大致 相同,第2个字节取值范围从0到127且每个值的个数也大致相同。(2)针对每个取值均勻的字节,按照逻辑页号由小到大的顺序,计算逻辑页号相差 为d (推荐d的取值为1、256、256*256)所对应的两个物理页spare area内该字节的取值 之差,如果该差值不变则说明该字节属于逻辑地址字段部分。例如由上步得知第1、2、4、5 字节是取值均勻分布的字节,分别选取逻辑页号为0、d、2d、3d、4d所对应的物理页sparearea 的第 1 字节内容,其值分别 ul、u2、u3、u4、u5。若 u2_ul = u3_u2 = u4_u3 = u5_u4 =1,则可认定第1字节即属于逻辑地址字段的一部分;若上述的连续等式不成立,则继续 对spare area的第2、4、5字节重复上述操作即可找出逻辑地址的所有字段。在本实施方式中选用的识别ECC校验码字段的字段分析方法如下找出同一逻辑页号对应的多个物理页的spare area内容中取值非0x00和非Oxff 并且长度大于3的连续多字节位置,逐字节作异或操作,在结果为0的字段中选择那些取值 均勻分布的字节,并从中去除已经识别的逻辑地址字段,剩下的长度大于等于3的连续多 字节即是ECC校验码字段。为详细说明本发明,下面以philips x800手机为例,具体说明本实施方式的实施 过程。实施例取证目标机是philips x800手机Α。为了满足目标机上取证数据的不可更改原 则,找来另一个同款手机B作为参考手机。利用数据线将Wiilips x800手机B连接到PC机上,电脑识别出可移动存储设 备I,该设备已用空间5. 4M,可用空间42. 5M。使用WinheX15. 2的文件生成功能创建4 个随机数据文件,总大小为42M。将数据文件存储到可移动设备I上,即手机B内置的 NAND Flash上。再利用WinheX15. 2的磁盘克隆工具生成NAND Flash的逻辑镜像文件 philipS-X800-logical。之后用手机维修工具(妙手Box)获取手机B的物理镜像文件 philips-x800-physical. bin。以可读方式打开物理镜像文件philipS-X800-phySiCal. bin,读指针先定位到物 理镜像的第512字节处,读取16字节数据(读指针后移16个字节),其内容为OxFFFFFFFF FFFFFFFF00000000FFFFFBFF ;统计连续OxFF值的个数有8个(大于4),位置在第1字节和 第8字节之间;读指针跳过后续的512字节定位在第1040字节处,再读取16字节数据,其 内容为OxFFFFFFFFFFFFFFFFOFOlFOOEFFFFFAOF,继续统计连续OxFF值的个数也有8个(大 于4),位置同样在第1字节和第8字节之间;以此类推,读指针分别定位到第1568字节、第 2096字节时,统计得到的连续OxFF值个数和位置与前面相同,由此可知philips x800型号 手机的内置NAND Flash芯片的数据排布格式是512+16字节的形式,即页大小是512+16字 节。之后确定16字节的spare area内逻辑地址字段和ECC校验码字段的位置。先以 512字节(扇区大小=页大小)为单位计算逻辑镜像文件philips-xSOO-logical中每个 逻辑页的md5哈希值,记录下逻辑页号及其对应的md5值生成logical, txt文件;同样以 512字节为单位计算物理镜像文件philips-x800-physical. bin中每个物理页的md5哈希 值并记录下物理页号及其对应的md5值生成phsical. txt文件;然后从第0个逻辑页号开 始,依次根据每个逻辑页的md5值在phsical. txt文件中查找具有相同md5值的物理页号 η,并将读指针定位到物理镜像文件philipS-X800-phySiCal. bin的第5^*n+512字节处, 读取随后的16字节内容(即spare area),接着把该逻辑页号、对应的物理页号及其16字 节spare area内容记录到文件result, txt中,如图5。接下来开始分析spare area内的 逻辑地址字段和ECC校验码字段。首先统计spare area内每个字节(从第1字节到第16字节)的取值范围及每个取值的个数,结果如表1。从中找出取值均勻分布的字段如第1 4字节、第9 16字节。

权利要求
1. 一种NAND Flash存储芯片的元数据格式识别方法,其特征在于,包括以下步骤一、首先辨别物理镜像中元数据区和有效数据区的排布规则由于目前手机内置NAND Flash芯片的主流存储结构是每512/2048字节有效数据和16/64字节元数据相间分布,则 区分物理镜像中有效数据区和元数据区排布规则的步骤是(1)以可读方式打开物理镜像文件;(2)读指针定位到物理镜像的第512字节处,读取16字节数据;统计16字节数据的取 值,统计连续多个字节取值等于OxFF的字节个数n,并记录这些字节的位置范围;(3)若η大于等于设定的门限值min则读指针跳过后续的512字节,再读取16字节数 据,继续统计连续多个字节取值等于OxFF的字节个数η并判断η是否大于等于min,同样记 录下这些OxFF值的位置范围;若η大于等于min并且连续OxFF值的位置范围相同则重复 本操作,直到重复次数达到3次为止;在此过程中若有1次判断结果为否,则说明物理镜像 的数据排布方式不是512+16字节的形式,于是操作跳转到步骤;否则说明物理镜像是 512+16字节的数据排列格式,即该NAND Flash芯片的页大小是512+16字节;(4)读指针定位到物理镜像的第2048字节处,读取64字节数据;统计64字节数据的 取值,统计连续多个字节取值等于OxFF的字节个数n,并记录这些字节的位置范围;(5)若η大于等于设定的门限值min2,则读指针跳过后续的2048字节,再读取64字节 数据,继续统计连续多个字节取值等于OxFF的字节个数η并判断η是否大于等于min,同样 记录下这些OxFF值的位置范围;若η大于等于min2并且连续OxFF值的位置范围相同则重 复本操作,直到重复次数达到3次为止;在此过程中若有1次判断结果为否,则说明物理镜 像的数据排布方式既不是512+16字节的形式也不是2048+64字节的形式;否则说明物理镜 像是2048+64字节的数据排列格式,即该NAND Flash芯片的页大小是2048+64字节。二、在确定NANDFlash芯片数据排布格式的基础上,识别16/64字节中逻辑地址字段 和校验码字段的位置为了满足手机取证过程中保护数字证据的操作原则,需要把取证目标手机相同型号的 另外一个手机作为识别其NAND Flash芯片元数据格式的参考手机,识别16/64字节中逻辑 地址字段和校验码字段位置的具体步骤是(1)随机生成一些数据文件存储到参考手机的内置NANDFlash芯片上,数据文件大小 尽可能占满NAND Flash的存储空间;(2)分别获取NANDFlash芯片的物理镜像文件和逻辑镜像文件;(3)根据步骤一确定的NANDFlash数据排布格式,计算物理镜像文件每528/2112字节 数据中前512/2048字节的MD5哈希值,记录下物理页号及其对应的MD5值;(4)根据步骤一确定的NANDFlash数据排布格式,计算逻辑镜像文件每512/2048字节 数据的MD5哈希值,记录下逻辑页号及其对应的MD5值;(5)按照逻辑页号由小到大的顺序,根据相同数据段的MD5值相等的原则查找每一个 逻辑页所对应的物理页,记录下逻辑页号、物理页号及对应的sparearea内容即16/64字节 元数据的内容;(6)按照逻辑页号由小到大的顺序,选择sparearea内容中有规律逐一递增的字段 即为逻辑地址字段;NAND Flash写操作的特性使得同一逻辑页可以对应多个物理页,在识 别spare area内逻辑地址字段位置的过程中,需每个逻辑页选择一个对应的物理页spare(7)分析同一逻辑页所对应的多个物理页的spare area内容,选择那些对应位置上内 容相同的随机数字段即为ECC校验码字段。
2.根据权利要求1所述的NANDFlash存储芯片的元数据格式识别方法,其特征在于, 所述门限值min为4,min2为20。
3.根据权利要求1所述的NANDFlash存储芯片的元数据格式识别方法,其特征在于, 所述识别逻辑地址字段的字段分析方法为(1)统计sparearea内每个字节的取值范围及每个取值的个数,找出取值均勻分布的 字段位置;(2)针对每个取值均勻分布的字节,按照逻辑页号由小到大的顺序,计算逻辑页号相差 为d的物理页spare area内该字节的取值之差,如果该差值不变则说明该字节属于逻辑地 址字段部分。
4.根据权利要求3所述的NANDFlash存储芯片的元数据格式识别方法,其特征在于, d的取值为1或256或256*256。
5.根据权利要求1-4任一项所述的NANDFlash存储芯片的元数据格式识别方法,其特 征在于,所述识别ECC校验码字段的字段分析方法为找出同一逻辑页号对应的多个物理 页的spare area内容中取值非0x00和非Oxff并且长度大于3的连续多字节位置,逐字节 作异或操作,在结果为0的字段中选择那些取值均勻分布的字节,并从中去除已经识别的 逻辑地址字段,剩下的长度大于等于3的连续多字节即是ECC校验码字段。
全文摘要
本发明涉及一种NAND Flash存储芯片的元数据格式识别方法,首先辨别物理镜像中元数据区和有效数据区的排布规则,然后随机生成一些数据文件存储到芯片上,分别获取芯片的物理镜像文件和逻辑镜像文件;根据相同数据段的MD5值相等的原则查找每一个逻辑页所对应的物理页,记录对应的元数据;按照一定的规律分析出元数据中的逻辑地址字段和ECC校验码字段。本发明可以在未知手机内置芯片的元数据格式及其含义的基础上,正确识别出芯片物理镜像的数据排布规律并解释其关键元数据的字段位置及其含义,从而利用现有的手机取证工具分析出那些删除或隐藏的犯罪证据。
文档编号G11C16/20GK102136296SQ201110041808
公开日2011年7月27日 申请日期2011年2月21日 优先权日2011年2月21日
发明者张丽, 张全新, 张雪兰, 李元章, 谭毓安, 马忠梅 申请人:北京理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1