版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
FLASH页结构分析对于FLASH数据的恢复,最重要的工作是将用户数据和管理数据区分出来,用管理区的逻辑地址和相关参数将用户数据重新组合排序,最后提取出用户需要的文件.管理区是以页为单位组织的,所以页结构正确与否将决定用户的数据是否能成功恢复FLASH数据恢复前提页介绍在NANDFLASH存储设备中,读写基本上是按页大小,擦除一般以块大小进行.一个页中包含了一个或多个用户的数据(扇区)和一部分的管理区数据(包括扇区的ECC校验和逻辑地址等)
常见的页大小有:2112、4224、4288、8600等。该数据可以在FLASH设备中直接获取。一般页结构管理区平均分布在扇区
管理区集中在页尾
有页头页尾管理区平均分布有页头页尾管理区集中在页后(512+16)*4512*4+16*430+(512+8)*4+230+512*4+8*4+2特殊页结构OneBlockMainarea256BSparearea8BMainarea256BSparearea8B扇区分割成多个节区Mainarea512BSparearea16BMainarea512BSparearea16BMainarea512BSparearea16BMainarea512BSparearea16B多个扇区合并成大节区半页结构半页结构是指在一个页内有一半的数据是用户数据,另一半的内容全是FFFF或0000.这部分数据是无效数据需要剔除Mainarea512BSparearea16BMainarea512BSparearea16BINVAILDDATA(FFFFFFFF)(000000000)基础知识准备我们通常在分析页结构的时候,需要使用到16进制的编辑器.常用的编辑器有WINHEX,UltraEdit等.在效率源FLASH程序中,也为用户提供了一个原始数据查看功能.
为了方便大众客户,在这里我们将使用WINHEX软件来分析页结构,以后随着客户对FLASH程序熟悉掌握,就可以直接使用FLASH程序中的查看工具来分析.分析思路:在对FLASH芯片中的数据进行分析的时候,我们需要使用到一些已知的特征数据.就目前收集到的芯片来看,绝大部分的U盘、SD卡、CF卡等FLASH存储设备都使用FAT16、FAT32的文件系统。FAT16、FAT32文件系统中包含很多特征数据,比如DBR、FAT表、目录项等。这些特征数据就被我们用来判断页的结构方式、页交换方式、数据收集顺序等。注意:在FAT文件系统中使用高前低后的方式存储。及高字节在前,低字节在后。特征数据DBR:该数据中将包含文本数据FAT16或FAT32字样,该数据所在的扇区一般是以16进制0xEB开头,0x55AA结尾,该数据大小一般是512ByteFAT表:簇链表。这部分的数据用来表示文件的开始位置。一般是以16进制0xF8FFFFFF、0xF8FFFF0F或0xF8FFFF7F为开始标记。FAT表中的簇号都有一定的连续性,簇号不断增大。FAT16文件系统是以两个字节表示一个簇,FAT32文件系统是以四个字节表示一个簇。目录项:一般对于FAT文件系统来说,都是以16进制0x2E开头,紧跟着10个20数据。并且在第32个字节是以0x2e2e开头,紧跟着9个20数据
了解前面的基础知识后,下面以几个实例来具体的分析。实例一本实例使用的案例页大小为2112字节
首先使用WINHEX软件,打开读取出来的芯片数据,后缀名为BIN文件。打开后的效果,这里请注意:WINHEX地址的表示方式。红框中如果有A,B,C,D,E,F字样出现,就表示地址是16进制显示,否则是10进制显示16进制10进制
接着我们就开始搜索特征数据,我们这里搜索FAT表的数据。搜索16进制0xF8FFFFFF搜索数据找到的数据
这里需要注意一点的是:对于我们找到的数据,分析是否是FAT表,需要看后面的数据(簇号)是否连续。上面这段数据比较连续。数据41、42、43连续增大。并且可以往后多看几个扇区,看后面的数据是否也是连续的。只有通过连续的数据,才能判断现在找到的地址就是FAT表的位置。从上面的信息,我们还可以得出,该U盘使用的文件系统是FAT16的,因为每个族都使用的是两个字节表示。如“4100”,“4200”、“4300”。而FAT32每簇使用四个字节表示,比如“41000000”、“42000000”、“43000000”….
接着将数据0xF8FFFFFF的开始地址复制下来,然后判断这个位置是否是一个整数的开始位置。即用地址0xD0A280去除以2112,D0A280是16进制数,需要转换成10进制(13673088)才可以除。如果不能被整除,说明我们找到的数据不是一个整页的开始,为了分析出一个页完整的结构,就必须先跳转到一个整页的开始位置,从页的开始位置进行分析。在这个实例中F8的物理位置刚好是能被整除的,说明这个FLASH的页结构中不存在页头的情况,因为页的开始位置就是用户的真实数据。现在就在这个位置的基础上向下跳一个扇区的大小512字节从当前位置向下跳16进制0x200字节,10进制512字节。物理位置变成D0A480。由于FAT文件系统簇号是逐渐增大的。上一个扇区是“0001”结尾,既簇号是“100”(16进制表示,10进制为“256”)。一个扇区为512字节,而FAT16系统的每个簇号占用2个字节,从0簇开始算,跳512字节后,就应该是256族,与跳转后得到的数据一致。这说明,在这512字节中,都应该是用户需要的FAT表数据,不存在FLASH的管理字节,就可以排除扇区被分割的情况。我们接着分析下面的数据。由于上一个扇区是以“0001”结尾,那下一个扇区的开始位置就应该是“0101”开始,这是由于族号递增的特性决定。当然也有特殊的情况,这里不做讨论。在这个实例中“0001”到“0101”之间存在其他数据,这个其他数据就被我们称为管理区数据,长度为16个字节。接着我们就可以从“0101”的位置继续向下跳一个扇区,分析后面的数据是否连续。最后在我们分析完一个整页以后,我们可以得出结论该U盘的页结构是:512+16+512+16+512+16+512+16=2112。4个管理区,4个数据区下图是FLASH中页结构设置图设置好页结构后,我们可以通过“查看数据”来验证结构是否正确在管理区我们可以看到部分有规律的数据,那我们就可以认为我们设置的页结构是正确的。实例二本实例使用的案例页大小为4288字节
在不知道FLASH文件系统的时候,用户可以搜索文本FAT16、FAT32本实例搜索出FAT32注意:判断一个数据是否为FAT文件系统的DBR,必须在一个扇区内以EB开头,以55AA为结尾标记,中间需有FAT16或FAT32的特征字在知道文件系统后,我们再来搜索FAT表中的数据。这个实例中的如果搜索0xF8FFFFFF,会发现有很多记录,为了更快,更方便的找到FAT表中的数据,我们可以猜测FAT表中的数据。根据FAT32文件系统使用四个字节表示一个簇,我们推测这个FLASH中可能存在数据“01200000”,“02200000”。对于找到的这个数据,我们也需要在这个数据的前面和后面多分析一下看看是不是符合FAT32文件系统的FAT表数据。因为在一些OFFICE文件中也可能会存在这样的记录,但是一般其前后的数据将不会很连续。
同样,我们需要计算“01200000”所在的这个位置是否是一个整页的开始。用“0x1A33540(27473216)”除以4288,刚好可以整除,那么这个“0x1A33540”为一个整页的开始。接着从当前位置向下跳一个扇区,分析后面的数据是否连续。这里“FFFFFF0F”表示一个文件的结束标志,占位簇号,相当于是“80200000”
继续向下分析,在跳过8个扇区后,还剩下一部分的数据,才到一个页结束的位置。我们就将这部分的数据做为页尾。刚好有64个字节程序中的设置图这里简单给大家说一下数据个数和管理个数的判断,一般来说,数据区一个扇区的长度是512字节,我们可以直接用页大小来整除512,商数就为数据区的个数,这个例子中我们用4288/512=8,所以这里有8个数据区。管理区一般与数据区个数一样,当然也有特殊的。在程序中查看到的管理区字节.实例三本实例使用的案例页大小为8600字节,大容量的东芝芯片页大小一般都是8600先还是确认一下芯片使用的是什么文件系统。找到一个DBR是FAT32的。有特征数据,并且从“EB”开始到“55AA”结束刚好是512字节。接着我们开始搜索FAT表,搜索“01200000”“02200000”同样,需要计算这个位置不是一个整页的开始,用0xD1F33B6除以8600。这个数不能被整除。为了分析一个个完整的页,我们只取整数部分25598,就可以得到“01200000”所在页的开始位置为25598*8600=220142800(0xD1F1CD0)。然后手动跳到页的开始位置我们就从这里开始向下分析扇区,向下跳一个扇区512字节发现上一个扇区结束的数据与下一个扇区开始的数据是连续的,中间没有其他任何数据,即无管理字。继续向下跳一个扇区从上图可以看出来,“801B0000”到“811B0000”之间有46个字节的信息,这些数据就将做为管理区数据,而数据区的大小将是512+512=1024字节。这种情况的设置就必须使用特殊页结构,多扇区合并成一个大的节区。在页尾部分还有40个字节的数据,程序中的设置为:注意:如果设置了特殊结构,就可以不再填写”数据块个数”,”管理区个数”,”数据长度”,”数据尾长度”.特殊结构设置后,只需要注意”单元头大小”,”单元尾大小”是否有数据.设置完成后,点”查看数据”,看管理区是否有规律的数据这说明我们的页结构设置是正确的.实例四本实例使用的页大小是2112字节首先搜索DBR标记(FAT16或FAT32)注意:对于有的FLASH芯片来说,可能找不到DBR,这个时候,我们就只能猜测是否使用的文件系统或是直接搜索FAT表的标记数据,通过FAT表中的数据来判断.接着搜索FAT表中的数据,因为文件系统是FAT16的,所以搜索数据”0120“”0220”计算当前的位置是不是一个整页,用0x3CE52600除以2112,刚好可以整除.然后向下跳一个扇区(512字节)跳过一个扇区后.数据结束为”FB20FFFF”,下一个扇区的开始数据为”FD20FE20”.按照FAT16文件系统的族大小占用两个字节,一个扇区就应该有256个簇号.从”0120”开始算起加上0x100,应该是”0021”结尾.而”0021”的数据在后面的扇区里了,说明在这一个扇区中包含了管理区数据,我们就要把这些管理区数据提取出来.我们从”0120”开始分析,向下找不连续的数据.发现在物理位置0x3CE526B0开始出现不连续的数据”1BCF78F45”,共4个字节.从”0120”开始到”1BCF”之间有176个字节,这就是第一个小节区.继续从”1BCF”开始向下分析,从”5920”开始到”AC20”结束,中间有168个字节,后面又出现不连续的数据”4563C855”,这4个字节也是管理区的数据.从”AD20”开始向下分析到”0021”结束(“0021”在FAT表中来说应该刚好是一个扇区的结束)中间有168字节,后面的”600000316ED09E”8个字节就为管理区数据所以这个页的页结构必须使用特殊结构,结构方式是大节区被分割成多个小节区,具体是176+4+168+4+168+8=528,而数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 47381-2026飞机发动机短舱灭火器用开口和口盖
- 湖南省衡阳市常宁市第一中学2025-2026学年高一下学期5月期中考试历史试卷
- 广播电视播音员主持人资格考试(广播电视播音主持业务)试题及答案(定西2026年)
- 【安徽】2025年高考安徽卷物理高考真题文档版
- 2022年6月福建省地理高中学生学业基础会考(扫描版)参考答案
- 2025-2030年校园招聘大使行业跨境出海战略分析研究报告
- 2025-2030年时装衬布行业商业模式创新分析研究报告
- 自由场固定观测强震仪器企业数字化转型与智慧升级战略分析报告
- 塑解剂DBD行业商业模式创新分析报告
- 新形势下电子元器件及设备行业顺势崛起战略制定与实施分析报告
- 医疗整形美容麻醉安全规范
- 旅游景区安全防范要求 第2部分:湖泊型
- ASTM-D3359-(附著力测试标准)-中文版
- DL∕T 2013-2019 垃圾焚烧发电厂启动试运及验收规程
- 2024年山东省高考化学试卷(真题+答案)
- 监理大纲工程监理方案技术标投标方案
- 2019XE115-5MW海上风机技术规范
- 建设工程框架协议合同
- 精选浙江省湖州市2023年中考社会思品试题(word版-含解析)
- 《三角形中几条重要线段》教学设计
- 张承志《北方的河》
评论
0/150
提交评论