CN103870364B - 一种基于时间戳的yaffs2文件最终版恢复方法 - Google Patents

一种基于时间戳的yaffs2文件最终版恢复方法 Download PDF

Info

Publication number
CN103870364B
CN103870364B CN201410126109.XA CN201410126109A CN103870364B CN 103870364 B CN103870364 B CN 103870364B CN 201410126109 A CN201410126109 A CN 201410126109A CN 103870364 B CN103870364 B CN 103870364B
Authority
CN
China
Prior art keywords
page
file
blockn
yaffs2
yst
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410126109.XA
Other languages
English (en)
Other versions
CN103870364A (zh
Inventor
何泾沙
黄娜
张玉强
赵斌
刘公政
万雪姣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanxi Ande Zhiyuan Information Technology Co.,Ltd.
Original Assignee
Beijing University of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing University of Technology filed Critical Beijing University of Technology
Priority to CN201410126109.XA priority Critical patent/CN103870364B/zh
Publication of CN103870364A publication Critical patent/CN103870364A/zh
Application granted granted Critical
Publication of CN103870364B publication Critical patent/CN103870364B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种基于时间戳的YAFFS2文件最终版恢复方法,该方法在研究NAND闪存的特性和YAFFS2文件系统的存储、回收机制的基础上,根据YAFFS2数据结构特征,利用Yst_atime时间戳信息为依据可以恢复出数据文件的最终版本,提出基于Yst_atime时间戳的YAFFS2文件最终版本恢复方法,该方法能从物理芯片上擦除的数据重新拼装进行恢复。

Description

一种基于时间戳的YAFFS2文件最终版恢复方法
技术领域
本发明涉及信息安全中数字取证技术领域,尤其涉及一种基于时间戳的YAFFS2文件最终版恢复方法。
背景技术
Android智能平台功能日益多样,储存的用户数据越来越多,因此恢复用户误删除的文件技术也越来越重要。目前YAFFS2文件系统下数据恢复技术有基于系统元信息的文件恢复方法。基于系统元信息的文件恢复,利用YAFFS2实现NAND闪存所要求的无重复写操作与磨损均衡的特殊方式,通过对象头、标志位、NAND块序号等元信息将那些逻辑上被删除,但实际并未从物理芯片上擦除的数据重新拼装进行恢复。该方法是按照闪存数据块物理偏移顺序进行编号,按照块序号从大到小排序。只存储创建时间距文件恢复时刻最接近的页面,以解决文件的分片和失序问题。
发明内容
针对上述问题中存在的不足之处,本发明提出一种基于时间戳的YAFFS2文件最终版恢复方法,该方法在NAND闪存的特性和YAFFS2文件系统的存储、回收机制的基础上,根据YAFFS2数据结构特征,利用Yst_atime时间戳信息为依据可以恢复出数据文件的最终版本。
为实现上述目的,本发明的基于时间戳的YAFFS2文件最终版恢复方法,其包括以下步骤:
1.一种基于时间戳的YAFFS2文件最终版恢复方法,其特征在于,包括:
步骤1,从YAFFS2文件中的最大块序号的数据块开始扫描,最大块序号标记为N,块序号为N的数据块标记为BlockN,扫描所述BlockN;
步骤2,从所述BlockN的最后一个页面开始扫描,该最后一个页面标记为M,数据块内第M个页面标记为PageM,扫描所述PageM,并对该PageM进行判断:如果所述PageM是所述BlockN中第一个页面,则执行步骤4,如果所述PageM不是所述BlockN中第一个页面,则执行步骤3;
步骤3,令M=M-1,执行步骤2;
步骤4,对所述BlockN进行判断,如果所述BlockN是最小块,则找到当前块的当前页的对象号和页面号,扫描结束,执行步骤6,否则执行步骤5;
步骤5,令N=N-1,执行步骤1;
步骤6,对闪存的当前块的当前页进行解析,读取页面号;
步骤7,如果所述页面号为0,则该页面是对象头,查找所述对象头的对象号和Yst_atime字段,并根据所述Yst_atime字段的访问时间戳确定文件最终版本对象头,否则寻找当前页的前一个页面,执行步骤6;
步骤8,查寻与所述最终版本对象头具有相同对象号的页面,并按从大到小的页面号和从远到近的时间顺序排序,得到排序结果;
步骤9,根据所述排序结果获取定位存储创建时间距Yst_atime字段最近的页面,验证所述最近的页面的文件相关信息,并将其拼装恢复并输出最终文件数据;
其中,所述Yst_atime字段:表示访问时间(access time),是文件最后一次被读取的时间。
本发明的有益效果在于:
本发明在NAND闪存的特性和YAFFS2文件系统的存储、回收机制的基础上,根据YAFFS2数据结构特征,利用Yst_atime时间戳信息为依据可以恢复出数据文件的最终版本,提出了基于Yst_atime时间戳的YAFFS2文件最终版本恢复方法,从物理芯片上擦除的数据重新拼装进行恢复。
附图说明
图1是本发明的基于时间戳的YAFFS2文件最终版恢复方法的原数据扫描算法流程图;
图2是本发明的基于时间戳的YAFFS2文件最终版恢复方法流程图。
具体实施方式
为了使发明的目的、技术方案及优点更加清楚明白,下面结合附图与实例对本发明作进一步详细说明。但所举实例不作为对本发明的限定。
本发明提出一种从用户角度出发,根据YAFFS2数据结构特征,NAND闪存下面向Android利用文件的最后访问时间戳Yst_atime为依据,恢复文件最终版本的方法。
YAFFS2文件系统下储存的每个文件都会有一个文件头,存储文件名、文件大小等信息。并且,YAFFS2采用递增的数字序列来标记每一个块,每当一个新块被分配,块序号加1。从具有最大块序号的数据块开始,到具有最小块序号的数据块,对每个块从最后一个页面到第一个页面依次扫描。用上述方法遍历NAND闪存,根据用户输入的文件名,寻找目标文件的所有对象头页面。
YAFFS的每个页面都有各自的标签,其中对象号ObjectID是该页面所属对象的ID号,页面号Chunkid用于标识该页面在所处对象中的逻辑位置,如Chunkid为0表示该页面是对象头,Chunkid为1表示该页面是所属对象的第一个数据页面。由于NAND闪存异地更新的特性,经过修改操作的文件会有不同历史版本存在于闪存上,所以搜索到的文件头页面可能为一个或多个。对于用户来说,仅需要恢复最新版本的文件。文件头储存的一些字段信息对文件恢复十分有用。其中,字段Yst_mtime:表示修改时间(modification time),是文件本身的内容发生了变化,是在写入文件时随文件内容的更改而更改的;字段Yst_ctime:表示改变时间(change time),是文件的索引节点发生了改变,是在写入文件、更改所有者、权限或链接设置时随Inode的内容更改而更改的;字段Yst_atime:表示访问时间(accesstime),是文件最后一次被读取的时间;是在读取文件或者执行文件时更改的。
若找到目标文件的对象头只有一个,说明文件只有一个版本存在于闪存上,读取其objectID,寻找所有具有相同objectID的数据页面。若找到多个目标文件的对象头,说明对象被修改过,具有相同ObjectID同时chunkID也相同的页面属于该文件的不同版本。读取所有chunkID为0的对象头中Yst_atime时间戳。在Android系统中,时间戳一般表示自1970年1月1日至今的毫秒数,所以我们可以直接比较Yst_atime值的大小,值最大的一个为最后一次访问时间。YAFFS2文件系统是根据对象头来决定把哪些文件内容呈现给用户。我们则根据最后一次访问的对象头,找到该版本下的所有数据页面。将找到的所有数据页面的内容拷贝到新的空闲块中,按照chunk ID由小到大排序,重组成完整的目标文件。拷贝数据时调用文件系统的写操作,将数据内容作为新的文件写入闪存,文件系统重新为其分配一个新的对象头,这样数据页面的状态全部为有效。
如图1,2所示,本发明提供一种NAND闪存下面向Android基于时间戳的YAFFS2文件恢复方法,包括:
用BlockN表示块序号为N的数据块,PageM表示块内第M个页面。采用从当前块BlockN到BlockN-1的遍历顺序逐块扫描整个闪存,对当前块BlockN内数据页面的扫描也从PageM到PageM-1逐页扫描,直至整个块扫描结束,跳转至BlockN-1继续。其扫描算法流程步骤如下:
步骤1 S101Scan BlockN;
步骤2 S102Scan当前Block中pageM;如果PageM是当前block中第一个页面,则转到(4);
步骤3 S103M=M-1,转到(2);
步骤4 S104如果当前block块是当前块中最小块,则扫描结束;
步骤5 S105N=N-1,转到(1)。
在上述扫描过程中,寻找对象头页面,根据访问时间戳Yst_atime字段确定文件最新版本对象头,从最终对象头Object header页面中获取文件的描述信息。其算法思想如下:
步骤1 S201从NAND Flash每页的spare区读取yaffs_tags中的chunkID,经解包后判断是对象头页面还是数据页面。
步骤2 S202chunkID=0,该Flash Page存放的数据为ObjectHeader,查找此tags中的ObjectID和Yst_atime字段,根据访问时间戳Yst_atime字段确定文件最新版本对象头ObjectID;
步骤3 S203从最终对象头Object header页面中获取文件的描述信息,用于恢复数据和验证文件数据恢复是否成功;
步骤4 S204查寻具有相同ObjectID的页面,判断chunkID>0:表示该Page存放的数据为某个Object的Data,并按从大到小的Chunkid和从远到近的时间顺序排序;
步骤5 S205定位存储创建时间距Yst_atime最近的页面,验证文件相关信息,拼装恢复并输出最终文件数据。
本方案适用于NAND闪存下面向Android基于时间戳的YAFFS2文件恢复,根据YAFFS2文件系统的存储、回收机制和数据结构特征、NAND闪存的特性,结合数据块和页的倒序遍历算法实现最终文件版本的恢复。
其中,字段Yst_mtime:表示修改时间(modification time),是文件本身的内容发生了变化,是在写入文件时随文件内容的更改而更改的;
字段Yst_ctime:表示改变时间(change time),是文件的索引节点发生了改变,是在写入文件、更改所有者、权限或链接设置时随Inode的内容更改而更改的;
字段Yst_atime:表示访问时间(access time),是文件最后一次被读取的时间;是在读取文件或者执行文件时更改的。
对时间戳的比较分析可以看出,访问时间Yst_atime是文件最后一次被读取的时间。因此阅读一个文件会更新它的访问时间,此时它的改变时间Yst_ctime并没有变化(文件的信息没有被改变),它的修改时间Yst_mtime也同样如此(文件本身没有被改变)。因此,根据Yst_atime时间戳信息为依据可以恢复出数据文件的最终版本。根据Yst_mtime时间戳信息为依据可以恢复出数据文件的不同版本。
惟以上所述者,仅为本发明的较佳实施例而已,举凡熟悉此项技艺的专业人士。在了解本发明的技术手段之后,自然能依据实际的需要,在本发明的教导下加以变化。因此凡依本发明申请专利范围所作的同等变化与修饰,都应仍属本发明专利涵盖的范围内。

Claims (1)

1.一种基于时间戳的YAFFS2文件最终版恢复方法,其特征在于,包括:
步骤1,从YAFFS2文件中的最大块序号的数据块开始扫描,最大块序号标记为N,块序号为N的数据块标记为BlockN,扫描所述BlockN;
步骤2,从所述BlockN的最后一个页面开始扫描,该最后一个页面标记为M,数据块内第M个页面标记为PageM,扫描所述PageM,并对该PageM进行判断:如果所述PageM是所述BlockN中第一个页面,则执行步骤4,如果所述PageM不是所述BlockN中第一个页面,则执行步骤3;
步骤3,令M=M-1,执行步骤2;
步骤4,对所述BlockN进行判断,如果所述BlockN是最小块,则找到当前块的当前页的对象号和页面号,扫描结束,执行步骤6,否则执行步骤5;
步骤5,令N=N-1,执行步骤1;
步骤6,对闪存的当前块的当前页进行解析,读取页面号;
步骤7,如果所述页面号为0,则该页面是对象头,查找所述对象头的对象号和Yst_atime字段,并根据所述Yst_atime字段的访问时间戳确定文件最终版本对象头,否则寻找当前页的前一个页面,执行步骤6;
步骤8,查寻与所述最终版本对象头具有相同对象号的页面,并按从大到小的页面号和从远到近的时间顺序排序,得到排序结果;
步骤9,根据所述排序结果获取定位存储创建时间距Yst_atime字段最近的页面,验证所述最近的页面的文件相关信息,并将其拼装恢复并输出最终文件数据;
其中,所述Yst_atime字段:表示访问时间(access time),是文件最后一次被读取的时间。
CN201410126109.XA 2014-03-31 2014-03-31 一种基于时间戳的yaffs2文件最终版恢复方法 Active CN103870364B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410126109.XA CN103870364B (zh) 2014-03-31 2014-03-31 一种基于时间戳的yaffs2文件最终版恢复方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410126109.XA CN103870364B (zh) 2014-03-31 2014-03-31 一种基于时间戳的yaffs2文件最终版恢复方法

Publications (2)

Publication Number Publication Date
CN103870364A CN103870364A (zh) 2014-06-18
CN103870364B true CN103870364B (zh) 2017-10-24

Family

ID=50908923

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410126109.XA Active CN103870364B (zh) 2014-03-31 2014-03-31 一种基于时间戳的yaffs2文件最终版恢复方法

Country Status (1)

Country Link
CN (1) CN103870364B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105487939A (zh) * 2014-10-10 2016-04-13 中兴通讯股份有限公司 一种闪存文件的数据恢复方法和装置
CN104778099B (zh) * 2015-04-16 2017-09-22 北京工业大学 一种基于历史版本的yaffs2破损文件重构方法
CN106126375B (zh) * 2016-06-24 2019-01-08 北京工业大学 一种基于Hash的YAFFS2文件各版本恢复方法
CN112698984B (zh) * 2020-12-17 2023-07-04 宁波三星医疗电气股份有限公司 嵌入式设备的数据库恢复方法、电子设备及介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101488153A (zh) * 2009-02-12 2009-07-22 浙江大学 嵌入式Linux下大容量闪存文件系统的实现方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080077590A1 (en) * 2006-09-22 2008-03-27 Honeywell International Inc. Efficient journaling and recovery mechanism for embedded flash file systems
JP2009064263A (ja) * 2007-09-06 2009-03-26 Toshiba Corp メモリ装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101488153A (zh) * 2009-02-12 2009-07-22 浙江大学 嵌入式Linux下大容量闪存文件系统的实现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
NAND闪存下YAFFS2文件恢复研究;朱宁;《中国优秀硕士学位论文全文数据库信息科技辑》;20140115;第2-3章 *

Also Published As

Publication number Publication date
CN103870364A (zh) 2014-06-18

Similar Documents

Publication Publication Date Title
CN107391774B (zh) 基于重复数据删除的日志文件系统的垃圾回收方法
CN101855620B (zh) 数据处理设备和数据处理方法
CN102779180B (zh) 数据存储系统的操作处理方法,数据存储系统
CN102016789B (zh) 数据处理装置和处理数据的方法
CN103870364B (zh) 一种基于时间戳的yaffs2文件最终版恢复方法
CA2399891A1 (en) Software patch generator
KR970066946A (ko) 정보검색 방법, 정보검색 장치 및 정보검색 프로그램을 격납하는 매체
CN103699585A (zh) 文件的元数据存储以及文件恢复的方法、装置和系统
US10496612B2 (en) Method for reliable and efficient filesystem metadata conversion
JP2009015530A5 (zh)
CN110309019B (zh) 一种快速恢复并提取apfs中删除文件的方法
CN104199888A (zh) 弹性文件系统的数据恢复方法和装置
CN104462433A (zh) 一种恢复fat32分区数据的方法
CN103885723A (zh) 数字证书存储方法、系统以及数字证书读取方法和系统
US20030159010A1 (en) Method, device and computer program product for processing information in a memory
CN105068885A (zh) 一种jpg碎片文件恢复与重组的方法
CN111400101B (zh) 一种jfs2文件系统数据删除时的数据恢复方法及系统
CN100407159C (zh) 恢复fat32文件系统中已删除文件的方法
CN110297781B (zh) 一种基于写时复制来恢复apfs中被删除数据的方法
CN112597345A (zh) 一种实验室数据自动采集与匹配方法
CN112800007B (zh) 适用于fat32文件系统的目录项扩展方法和系统
US20090138453A1 (en) System and method for searching large amount of data at high speed for digital forensic system
CN104778099B (zh) 一种基于历史版本的yaffs2破损文件重构方法
CN103942122B (zh) 一种识别AVI类型block的方法
Ravi et al. A method for carving fragmented document and image files

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20210602

Address after: 102600 room 2212, 2 tower, Pope center 3, 2 Xinghua street, Daxing District, Beijing.

Patentee after: BEIJING YONGBO TECHNOLOGY Co.,Ltd.

Address before: 100124 No. 100 Chaoyang District Ping Tian Park, Beijing

Patentee before: Beijing University of Technology

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20221212

Address after: 030006 1501, Building B, Huayu Baihua Valley, 132 Xuefu Street, Xiaodian District, Taiyuan, Shanxi

Patentee after: Shanxi Ande Zhiyuan Information Technology Co.,Ltd.

Address before: 102600 room 2212, 2 tower, Pope center 3, 2 Xinghua street, Daxing District, Beijing.

Patentee before: BEIJING YONGBO TECHNOLOGY CO.,LTD.

TR01 Transfer of patent right