CN115827323A - 恢复文件的方法、装置和计算机可读介质 - Google Patents

恢复文件的方法、装置和计算机可读介质 Download PDF

Info

Publication number
CN115827323A
CN115827323A CN202211524704.XA CN202211524704A CN115827323A CN 115827323 A CN115827323 A CN 115827323A CN 202211524704 A CN202211524704 A CN 202211524704A CN 115827323 A CN115827323 A CN 115827323A
Authority
CN
China
Prior art keywords
file
restoring
storage device
memory
files
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.)
Granted
Application number
CN202211524704.XA
Other languages
English (en)
Other versions
CN115827323B (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.)
Moore Thread Intelligent Technology Chengdu Co ltd
Moore Threads Technology Co Ltd
Original Assignee
Moore Thread Intelligent Technology Chengdu Co ltd
Moore Threads Technology Co Ltd
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 Moore Thread Intelligent Technology Chengdu Co ltd, Moore Threads Technology Co Ltd filed Critical Moore Thread Intelligent Technology Chengdu Co ltd
Priority to CN202211524704.XA priority Critical patent/CN115827323B/zh
Publication of CN115827323A publication Critical patent/CN115827323A/zh
Application granted granted Critical
Publication of CN115827323B publication Critical patent/CN115827323B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

提供了恢复文件的方法、装置和计算机可读介质。所述方法包括:确定要恢复的文件的特征;根据所确定的特征来获取所述文件在存储装置中的信息;基于所获取的信息在所述存储装置中定位用于恢复所述文件的数据;以及从所述存储装置中获取所述数据并恢复所述文件。

Description

恢复文件的方法、装置和计算机可读介质
技术领域
本公开涉及恢复文件的方法、装置和计算机可读介质。具体地,本公开涉及从内存映像文件中恢复意外丢失或未保存的文件,从而能够恢复并提取各种有价值的文件或数据。
背景技术
随着越来越普及的电子设备的使用,用户经常遭遇文件在各种电子设备上意外丢失的情形。例如,当用户在编辑诸如CAD、Office文档、音频、视频、图像以及程序等文件时可能遭遇电子设备掉电或者电子设备的系统崩溃,导致正在编辑的文件由于未能及时保存而部分或者全部意外丢失。
因此,需要能够恢复这些部分或者全部意外丢失的文件的技术,来减少产生的损失。除此之外,通过恢复这些文件,还能够对有价值的文件或数据进行数据取证。
发明内容
根据本公开的一个方面,提供了一种恢复文件的方法,包括:确定要恢复的文件的特征;根据所确定的特征来获取所述文件在存储装置中的信息;基于所获取的信息在所述存储装置中定位用于恢复所述文件的数据;以及从所述存储装置中获取所述数据并恢复所述文件。
根据本公开的另一个方面,提供了一种恢复文件的装置,包括:特征确定模块,用于确定要恢复的文件的特征;信息获取模块,用于根据所确定的特征来获取所述文件在存储装置中的信息;文件定位模块,用于基于所获取的信息在所述存储装置中定位用于恢复所述文件的数据;以及恢复模块,用于从所述存储装置中获取所述数据并恢复所述文件。
根据本公开的另一个方面,提供了一种其上存储有指令的计算机可读介质,所述指令当被执行时使得计算设备执行根据本公开所描述的方法。
通过本文描述的技术,能够对各种文件进行恢复,然后进行静态的精细分析,降低人工分析的复杂性,提高定位问题的效率。
附图说明
现在将参照附图描述本公开的具体示例性实施例。然而,本公开可以以很多不同的形式实施,并且不应该被解读为限于本文所阐述的实施例;相反,这些实施例被提供以便使该公开全面而完整,并且将向本领域技术人员完全表达本公开的范围。在对附图所示特定示例性实施例的详细描述中所使用的术语不打算对本公开是限制性的。在附图中,类似的数字指代类似的部件。
图1是根据本公开实施例示出用于恢复文件的方法的流程图。
图2是根据本公开另一实施例示出用于恢复文件的方法的流程图。
图3是根据本公开另一实施例示出本公开的框架的示意图。
图4是根据本公开另一实施例示出用于恢复文件的装置的框图。
图5是示出根据本公开实施例的计算设备的框图。
具体实施方式
为使本公开的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本公开技术方案作进一步说明。应该进一步理解,使用在该说明书中,术语“包括”意指存在所陈述的特征、步骤、操作、部件和/或组件,但是并不排除存在或添加一个或更多个其他特征、步骤、操作、部件、组件和/或其组成的组。
图1是根据本公开实施例示出用于恢复文件的方法100的流程图。
如图1中所示,在步骤102处,确定要恢复的文件的特征。要恢复的文件可以包括在各种电子设备上使用的各种文件。例如,电子设备可以包括但不限于台式计算机、笔记本计算机、服务器、平板设备以及移动电话等等。电子设备上使用的各种文件可以包括但不限于:CAD文档、办公文档(例如,Microsoft的Word、Excel、PowerPoint,Adobe的PDF文档等等)、音频文件、视频文件、图像文件以及程序文件等等。另外,要恢复的文件还可以包括可移植的可执行文件(PE),例如在各种电子设备的操作系统中使用的EXE文件、DLL文件、OCX文件、SYS文件、COM文件等等。相应地,文件的特征可以包括用于对文件的各种数据进行检索的特征,例如文件的类型、文件的名称以及文件的格式等等。
在步骤104处,根据所确定的特征来获取所述文件在存储装置中的信息。所述存储装置可以包括存储要恢复的文件的任何信息的装置。在一个示例中,所述存储装置可以包括内存映像文件,例如dump文件。可替代地,存储装置还可以包括内存、硬盘驱动器或者能够从中获取并恢复文件的数据的任何存储器。在一个示例中,可以根据文件的名称来获取该文件在存储装置中的基地址以及该文件在存储装置中占用的存储空间的大小。具体地,dump文件可以是一个进程或者系统在某一个给定的时间的快照。dump文件可以包括程序运行的模块信息、线程信息、堆栈调用信息、异常信息等数据。这样,在从dump文件中获取文件的信息的示例中,可以根据所确定的文件特征来从dump文件中获取与该文件相关的各种信息。在一个示例中,可以将dump文件加载到内存中,然后可以根据该dump文件的名称来获取其在内存中的基地址以及在内存中占用的存储空间的大小。基地址可以指示dump文件加载到内存的起始地址。该起始地址可以是预先指定的默认地址,或者可以是随机地址以防止恶意攻击。在内存中占用的存储空间的大小可以指示为了恢复所述文件要在内存中分配的新的存储块的大小。在另一个示例中,可以从dump文件中提取与期望恢复的文件的数据相关的DDL(动态链接库)信息。
在步骤106处,基于所获取的信息在所述存储装置中定位用于恢复所述文件的数据。所获取的信息可以包括如上文所述的文件在存储装置中的基地址及占用存储空间大小。基地址可以指示文件加载到存储装置中时的起始地址。因此,可以根据起始地址和占用存储空间大小从存储装置中定位以获取用于恢复所述文件的数据。在一个示例中,用于恢复所述文件的数据在存储装置中可以是连续存储的。在该示例中,可以根据文件的起始地址和占用存储空间大小计算出存储装置中的哪些数据代表了要恢复的文件。相应地,可以从存储装置中获取这些数据以用于恢复文件。此外,占用存储空间大小还可以指示为了恢复所述文件要分配的新的存储块的大小。另外,不同类型的文件可以具有不同格式的数据块,并且不同类型的文件在诸如内存、dump文件的存储装置中的存储方式可能不同。此外,用于恢复所述文件的数据(诸如多个数据块)在存储装置中可以是不连续存储的。因此,需要对要恢复的文件进行分析,以确定该文件由哪些数据块构成以及这些数据块在存储装置中的存储方式。由此,可以确定这些数据块在存储装置中的存储情况。例如,可以找到这些数据块在存储装置中的位置和占用情况(例如,占用的存储空间大小)。在一个示例中,文件可以包括头部、节表以及多个节区。在该示例中,如上所述的文件在存储装置中的基地址可以指示文件的头部在存储装置中的位置,从而可以获取头部。可以解析头部以确定文件的节表,例如节表的数量等。节表可以指示多个节区在存储装置中的存储情况,例如其位置及占用空间大小等。然后,在诸如多个节区在存储装置中是不连续存储的示例中,可以基于所确定的节表来确定文件的多个节区中每个节区在存储装置中的位置及占用空间大小,并且可以根据每个节区的位置及占用空间大小来从所述存储装置中获取相应节区。下文结合PE文件的结构对此进行了更详细的描述。
在步骤108处,从所述存储装置中获取所述数据并恢复所述文件。在一个示例中,可以直接从存储装置中获取数据并恢复文件。例如,可以使用各种磁盘恢复技术从存储装置中获取并恢复定位到的数据,得到恢复后的文件。在另一个示例中,文件可以包括诸如头部、节表和节区的各种数据块。在该示例中,可以根据所确定的数据块在存储装置中的存储情况,从存储装置中读取各个数据块。然后,根据之前确定的要恢复文件的特征来重组所读取的数据块,以恢复该文件。进一步的,可以根据所确定的数据块在存储装置中的位置和占用的存储空间大小来计算出数据块在存储装置中的起始位置,从而将各个数据块对齐并还原到存储装置中的新存储块中。然后,根据要恢复文件的特征(例如,文件的格式)对新存储块进行修复和还原,并释放到文件中。
附加地或者可替代地,对文件进行恢复还可以包括在完成文件的恢复之后测试所恢复文件,以确定其有效性。在一个示例中,可以根据文件所包含的诸如签名等认证信息来验证所恢复的文件的有效性。在另一个示例中,可以根据文件所包含的诸如校验和字段等校验信息来校验文件的完整性。具体地,可以根据恢复后的文件的基地址和长度来计算校验和以与恢复后的文件包括的校验和字段进行比较来校验所述文件的完整性。
图2是根据本公开另一实施例示出用于恢复文件的方法的流程图。在该实施例中,以可移植的可执行文件(PE)和dump文件作为非限制性示例来说明恢复文件的方法。应当理解的是,该方法可以应用于从任何存储装置中恢复任何文件,例如上文所述的各种存储装置和各种文件。
如图2所示,在步骤202处,加载dump文件。在一个示例中,例如对于Windows操作系统,加载dump文件可以包括将dump文件载入调试工具Windbg中。应当理解的是,对于诸如IOS、Linux和Android的其他操作系统,加载dump文件可以包括将其载入其他相应的调试工具中。附加地,dump文件可以包括完整dump文件、内核dump文件和用户完整dump文件中的一个或多个。具体地,完整dump文件的大小可以对应于物理内存的大小,并且可以包括用户模式和内核模式的所有数据以及PE文件的内存映像。内核dump文件的大小可以对应于内核空间的大小,并且可以仅包括内核模式的所有数据以及PE文件的内存映像。用户完整dump文件的大小可以小于前述完整dump文件和内核dump文件,并且可以仅包括当前进程的所有数据以及PE文件的内存映像。在一个实施例中,可以根据要恢复的PE文件的特征(例如,文件名称、文件类型等)来选择用于恢复该PE文件的模式,并且根据所选择的模式来检索相应的dump文件。在加载了检索到的dump文件之后,在内存中生成构成要恢复的PE文件的数据(例如头部、节表和节区),然后可以如下文所描述的那样获取PE文件在内存中的信息(基地址、占用空间大小等)来在内存中定位所生成的数据。所述模式可以包括用户模式和内核模式。具体地,可以根据要恢复的PE文件的特征(诸如文件名称、类型等)来确定要恢复的是内核模式的文件还是用户模式的文件。如果是内核模式的文件,则检索例如与系统内核相关的dump文件(即,包括针对内核模式的所有数据和内存映像)以进行加载,从而可以加快内核模式下PE文件的恢复速度和准确度。相应地,如果是用户模式的文件,则检索例如与用户使用的应用程序相关的dump文件以进行加载。在用户模式中加载的dump文件包括针对当前进程的所有数据和PE文件的内存映像,并且在内核模式中加载的dump文件包括针对内核模式的所有数据和PE文件的内存映像。更具体地,例如,要恢复的PE文件的类型可以与诸如驱动程序的系统内核程序相关,在这种情况下可以选择内核模式并检索与内核模式相关的dump文件以恢复PE文件。当要恢复的PE文件的类型与诸如办公文档的应用程序相关时,可以选择用户模式并检索与用户模式相关的dump文件以恢复PE文件。通过选择性地应用不同模式来恢复PE文件,可以更加快速地并且准确地恢复PE文件。例如,对于内核模式,可以使用如上所述较小的内核dump文件而不考虑用户完整dump文件,来更加快速地并且准确地恢复与系统内核程序相关的PE文件。
在步骤204处,加载功能插件。在图2所示的实施例中,例如,该功能插件用于从之前步骤中加载的dump文件中提取要恢复的PE文件。应当理解的是,取决于具体应用,该功能插件可以用于从任何存储装置中提取任何文件,例如上文所述的各种存储装置和各种文件。
附加地或者可替代地,所述方法还可以包括切换进程的步骤,以切换到目标进程,从而能够获取特定进程的数据。例如,可以通过设置目标进程页表来切换到目标进程。
在加载功能插件之后,在步骤206处,向功能插件输入要恢复的文件的名称。在一个示例中,所输入的名称表征要恢复的文件在内存中的存储特性。在一个示例中,所输入的名称表征要恢复的文件在dump文件中的存储特性。附加地或者可替代地,可以向功能插件输入表征文件的存储特性的任何信息。
在步骤208处,通过文件的名称获取文件的基地址及大小。具体地,在图2所示的实施例中,可以通过分析PE文件的名称来获取该PE文件的内存基地址和占用内存的大小。内存基地址可以指示该PE文件加载到内存的起始地址,并且也指示PE文件的头部在内存中的位置。该起始地址可以是预先指定的默认地址,或者可以是随机地址以防止恶意攻击。此外,占用内存的大小可以指示为了恢复该PE文件要在内存中分配的新的存储块的大小。
在步骤210处,解析文件的头部。具体地,在图2所示的实施例中,对PE文件的头部文件进行解析。取决于所针对的操作系统,PE文件可以包括32位文件和64位文件。PE文件的头部可以包括NT头部和节表,它们分别是包括各种成员的结构体。特别地,NT头部可以包括用于指示PE文件中存在的节区数量的成员、用于标识PE文件属性的成员等等。节表可以定义各节区的属性,例如不同的特性、访问权限等等。具体地,节表可以包括用于指示以下各项的成员:内存中节区所占大小、内存中节区起始地址、磁盘文件中节区所占大小以及节区属性等等。应该理解的是,PE文件的头部还可以包括其他数据,并且取决于具体应用,可以对PE文件的头部进行解析以获得任何期望的数据。
在步骤212处,获取各个节区所在的内存地址及所占大小。具体地,基于之前步骤对PE文件的头部的解析结果,来找到PE文件的节表。然后,通过节表来获取PE文件的各个节区在内存中的起始地址和所占大小,从而可以根据每个节区的起始地址和所占大小来从内存中获取相应节区。如上所述,还可以根据需要获取PE文件的头部中包括的其他数据。
在步骤214处,逐节区地将各个节区复制到新的内存块中。具体地,可以将各个节区按照扇区对齐并复制到新的内存块中。
在步骤216处,按照文件格式对所述内存块进行修复和还原。在一个示例中,可以通过链接器的方式对这些内存块进行修复和还原,包括对PE文件的导入表、导出表、重定位表、头部的各个字段进行修复和还原。
在步骤218处,将修复和还原之后的内存块重新释放到文件中。例如,可以将修复和还原之后的内存块重新释放到与要恢复的文件具有相同类型和名称的文件中。在步骤220处,验证文件的有效性。具体地,针对PE文件,可以计算PE文件的校验和以验证释放后的文件的有效性,例如文件的完整性等等。在一个示例中,可以根据释放后的PE文件的基地址和长度来计算校验和并将其与PE文件包括的校验和字段进行比较,以验证PE文件的完整性。
通过参照图2所描述的方法,可以从dump文件中恢复由于各种原因丢失的PE文件,从而可以进行各种数据取证并且避免文件丢失造成的损失。
应当理解的是,尽管以从dump文件中恢复PE文件作为示例说明了恢复文件的方法,但是该方法不受此限制。在一个示例中,可以在内核模式下恢复诸如内核的驱动程序文件之类的内核相关文件。在恢复驱动程序文件的示例中,由于各种原因(例如,存在多个内核),可能无法准确找到要加载的用于恢复驱动程序文件的内核模块文件。对此,可以通过PsLoadedModuleList(其是Windows加载的所有内核模块构成的链表的表头)定位要恢复的文件的模块结构体描述符,来确定驱动程序文件对应的内核模块文件。然后,从诸如硬盘的存储装置中加载内核模块文件到内存中以获取内核模块文件在内存中的基地址与所占大小。接下来,按照如上参照图2所描述的方法的流程来恢复该文件。
图3是根据本公开另一实施例示出本公开的框架的示意图。在如图3所示的框架中,可以包括系统层301、dump文件层302和执行层303。
系统层301可以包括各种操作系统平台,包括但不限于苹果公司的IOS/OSX系统、微软公司的Windows系统、Linux系统以及Android系统,如图3所示。应当理解的是,本公开还可以应用于任何其他通用或专用系统,来恢复期望的文件和数据。相应地,dump文件层302可以包括与系统层301中的各个操作系统对应的dump文件,例如IOS dump文件、Windowsdump文件、Linux kdump文件以及Android dump文件等等,如图3所示。
执行层303可以包括用于执行如上文参照图1和2描述的方法的各种组件。附加地或者可替代地,在图3所示的实施例中,执行层303可以包括用于执行dump类型分析的组件,以针对各个操作系统来分析dump文件的类型。另外,执行层303可以包括:用于执行文件类型分析的组件,例如参照图1和2所描述的那样来确定要恢复的文件的各种特征;用于执行特征搜索的组件,例如参照图1和2所描述的那样来对相应文件进行解析并从相应dump文件中搜索文件的各种特征,以获得构成文件的各个数据块;用于执行文件恢复的组件,例如参照图1和2所描述的那样根据所获得的数据块来对文件进行恢复;用于执行文件释放的组件,例如参照图1和2所描述的那样来将恢复后的文件释放到相应文件中;以及用于执行文件测试的组件,例如参照图1和2所描述的那样来验证恢复后的文件的有效性。另外,除了上文所说明的PE文件外,图3还示出了可以应用本公开来恢复各种文件,包括但不限于PPT文件、Excel文件、Word文档、源代码文件、CAD文档等等。
现在参照图4,示出了根据本公开另一实施例的用于恢复文件的装置的框图400。如图4中所示,装置400可以包括特征确定模块402、信息获取模块404、文件定位模块406和恢复模块408。具体地,特征确定模块402被配置为确定要恢复的文件的特征。所确定的特征可以包括用于对文件的各种数据进行检索的特征,例如文件的类型、文件的名称以及文件的格式等等。信息获取模块404被配置为根据所确定的特征来获取所述文件在存储装置中的信息。例如,可以根据文件的名称来获取该文件在存储装置中的基地址以及该文件在存储装置中占用的存储空间的大小。文件定位模块406被配置为基于所获取的信息在所述存储装置中定位用于恢复所述文件的数据。例如,所获取的信息包括文件在存储装置中的基地址及占用存储空间大小。基地址指示文件加载到存储装置中时的起始地址。可以根据起始地址和占用存储空间大小从存储装置中获取用于恢复所述文件的数据。恢复模块408被配置为从所述存储装置中获取所述数据并恢复所述文件。在一个示例中,文件可以包括诸如头部、节表以及多个节区的多个数据块。在该示例中,如上所述的起始地址可以指示文件的头部的位置,从而可以从存储装置中获取文件的头部。文件定位模块406可以对头部进行解析,以确定文件的节表,例如节表的数量等。节表可以指示多个节区在存储装置中的存储情况,例如位置及占用空间大小等。然后,恢复模块408可以基于所确定的节表来确定文件的多个节区中每个节区在存储装置中的位置及占用空间大小,并且可以根据每个节区的位置及占用空间大小来从所述存储装置中获取相应节区以用于恢复文件。进一步的,恢复模块408可以将诸如头部、节表以及节区的各个数据块对齐并还原到存储装置中的新存储块中。然后,根据要恢复文件的特征对新存储块进行修复和还原,并释放到文件中。在各种实施例中,装置400可以用于执行如上文所描述的任何方法的步骤。
附加地或可替换地,可以使用计算机处理器、存储器单元、存储设备、计算机软件和其他组件在一台或更多台计算机或服务器或类似设备上实现本申请的上述方法、通用对接模块、服务平台或第三方平台。这种计算机或服务器的高级框图在图5中示出。在此,计算机、服务器或其他包括处理器的设备统称为计算设备。计算设备502包含处理器504,处理器504通过执行定义了整体操作的计算机程序指令来控制计算机502的操作。可以将计算机程序指令存储在存储设备512(例如磁盘)中并在需要执行计算机程序指令时将其加载到存储器510中。因此,参照图1和图2的方法的步骤可以由存储在存储器510和/或存储设备512中的计算机程序指令定义,并由执行该计算机程序指令的处理器504控制。计算设备502还包括一个或更多个网络接口506,用于经由网络与其他设备进行通信。计算设备502还包括使用户能够与计算机502进行交互的其他输入/输出设备508(例如,显示器、键盘、鼠标、扬声器、按钮等)。本领域的技术人员将认识到,实际计算机的实施例也可以包含其他组件,并且图5是用于说明目的的这种计算机的一些组件的高级表示。
存储设备512和存储器510均包括有形的非暂时性计算机可读存储介质。存储设备512和存储器510均可包括高速随机存取存储器,诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、双倍数据速率同步动态随机存取存储器(DDR RAM)或其他随机存取固态存储器设备,并且可以包括非易失性存储器,诸如一个或多个磁盘存储设备(诸如内部硬盘和可移动磁盘)、磁光盘存储设备、光盘存储设备、闪存设备、半导体存储器设备(诸如可擦除可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM))、紧凑盘只读存储器(CD-ROM)、数字多功能盘只读存储器(DVD-ROM)盘或其他非易失性固态存储设备。
在另一实施例中,可以在基于网络的云计算系统中实现上述方法、通用对接模块、服务平台或第三方平台。在这样的基于网络的云计算系统中,服务器经由网络与一个或更多个客户端计算机通信。客户端计算机可以例如经由驻留在客户端计算机上并在其上运行的网络浏览器应用与服务器进行通信。客户端计算机可以将数据存储在服务器上,并经由网络访问该数据。客户端计算机可以经由网络将数据请求或在线服务请求传送到服务器。服务器可以实施所请求的服务,并将数据提供给(一个或多个)客户端计算机。服务器还可以传送被适配为使客户端计算机实施指定功能(例如,实施计算,在屏幕上显示指定数据等)的数据。上述方法的某些步骤可以由服务器或由基于网络的云计算系统中的其他计算机/处理器实施。上述方法的某些步骤可以由基于网络的云计算系统中的客户端计算机本地实施。上述方法的步骤可以由基于网络的云计算系统中的一个或更多个设备或者由本地客户端计算机以任何组合来实施。
应认识到为了清楚起见在单独实施例的上下文中描述的本申请的某些特征还可以在单个实施例中以组合的方式提供。相反,为了简便起见在单个实施例的上下文中描述的本申请的各种特征还可以单独地或以任何适当的子组合或在本申请的任何其他所述实施例中适当地提供。不应将在各种实施例的上下文中描述的某些特征视为那些实施例的必要特征,除非该实施例在没有那些元素的情况下无效。
虽然已结合本申请的具体实施例描述了本申请,但是很明显,许多替换、修改和变更对于本领域的技术人员来说将是显而易见的。因此,旨在涵盖属于随附权利要求的精神和广泛范围内的所有此类替换、修改和变更。
本说明中提及的所有公开、专利和专利申请通过引用整体地结合于本文中,引用的程度如同具体且特别地指示每个单独的公开、专利或专利申请以通过引用结合于本文一样。另外,不应将本申请中的任何参考的引用或识别理解为允许此类参考作为现有技术可用于本申请。在使用分段标题的情况下,不应将其理解为一定是限制性的。

Claims (21)

1.一种恢复文件的方法,包括:
确定要恢复的文件的特征;
根据所确定的特征来获取所述文件在存储装置中的信息;
基于所获取的信息在所述存储装置中定位用于恢复所述文件的数据;以及
从所述存储装置中获取所述数据并恢复所述文件。
2.根据权利要求1所述的恢复文件的方法,其中所述存储装置包括内存映像文件、内存或者硬盘驱动器中的至少一个。
3.根据权利要求1所述的恢复文件的方法,其中所获取的信息包括所述文件在所述存储装置中的基地址及占用存储空间大小,所述基地址指示所述文件加载到所述存储装置中时的起始地址,其中所述占用存储空间大小用于指示为了恢复所述文件要分配的新的存储块的大小。
4.根据权利要求3所述的恢复文件的方法,其中所述文件包括头部、节表以及多个节区,并且所述起始地址指示所述文件的头部在所述存储装置中的位置,所述基于所获取的信息在所述存储装置中定位用于恢复所述文件的数据,包括:
解析所述头部,以确定所述文件的节表;以及
基于所确定的节表来确定所述文件的多个节区中每个节区在所述存储装置中的位置及占用空间大小,
其中,所述从所述存储装置中获取所述数据,包括:根据每个节区的位置及占用空间大小来从所述存储装置中获取相应节区。
5.根据权利要求4所述的恢复文件的方法,其中恢复所述文件包括:
将所述头部、所述节表以及所述多个节区按照扇区进行对齐还原到新的存储块中;以及
针对所述存储块,基于所述文件的格式来恢复所述文件。
6.根据权利要求1所述的恢复文件的方法,所述方法还包括:
在完成所述文件的恢复之后,根据恢复后的文件的基地址和长度来计算校验和以与恢复后的文件包括的校验和字段进行比较来校验所述文件的完整性。
7.根据权利要求1所述的恢复文件的方法,其中要恢复的文件包括可移植的可执行文件。
8.根据权利要求1所述的恢复文件的方法,所述存储装置为非内存映像文件,所述方法还包括:
加载内存映像文件以在所述存储装置中生成用于恢复所述文件的数据。
9.根据权利要求8所述的恢复文件的方法,所述方法还包括:
根据所确定的文件的特征来选择用于恢复所述文件的模式,并且根据所选择的模式来检索对应内存映像文件以进行加载,其中所述模式包括用户模式和内核模式。
10.根据权利要求9所述的恢复文件的方法,其中在所述用户模式中加载的内存映像文件包括针对当前进程的所有数据和可移植的可执行文件的内存映像,并且在所述内核模式中加载的内存映像文件包括针对内核模式的所有数据和可移植的可执行文件的内存映像。
11.一种恢复文件的装置,包括:
特征确定模块,用于确定要恢复的文件的特征;
信息获取模块,用于根据所确定的特征来获取所述文件在存储装置中的信息;
文件定位模块,用于基于所获取的信息在所述存储装置中定位用于恢复所述文件的数据;以及
恢复模块,用于从所述存储装置中获取所述数据并恢复所述文件。
12.根据权利要求11所述的恢复文件的装置,其中所述存储装置包括内存映像文件、内存或者硬盘驱动器中的至少一个。
13.根据权利要求11所述的恢复文件的装置,其中所获取的信息包括所述文件在所述存储装置中的基地址及占用存储空间大小,所述基地址指示所述文件加载到所述存储装置中时的起始地址,其中所述占用存储空间大小用于指示为了恢复所述文件要分配的新的存储块的大小。
14.根据权利要求11所述的恢复文件的装置,其中所述文件包括头部、节表以及多个节区,并且所述起始地址指示所述文件的头部在所述存储装置中的位置,所述文件定位模块,用于:
解析所述头部,以确定所述文件的节表;以及
基于所确定的节表来确定所述文件的多个节区中每个节区在所述存储装置中的位置及占用空间大小,
其中,所述恢复模块,用于根据每个节区的位置及占用空间大小来从所述存储装置中获取相应节区。
15.根据权利要求14所述的恢复文件的装置,其中所述恢复模块用于:
将所述头部、所述节表以及所述多个节区按照扇区进行对齐还原到新的存储块中;以及
针对所述存储块,基于所述文件的格式来恢复所述文件。
16.根据权利要求11所述的恢复文件的装置,其中所述装置还包括校验模块,用于:
在完成所述文件的恢复之后,根据恢复后的文件的基地址和长度来计算校验和以与恢复后的文件包括的校验和字段进行比较来校验所述文件的完整性。
17.根据权利要求11所述的恢复文件的装置,其中要恢复的文件包括可移植的可执行文件。
18.根据权利要求11所述的恢复文件的装置,所述存储装置为非内存映像文件,所述装置包括加载模块,用于:
加载内存映像文件以在所述存储装置中生成用于恢复所述文件的数据。
19.根据权利要求18所述的恢复文件的装置,所述装置包括模式选择模块,用于:
根据所确定的文件的特征来选择用于恢复所述文件的模式,并且根据所选择的模式来检索对应内存映像文件以进行加载,其中所述模式包括用户模式和内核模式。
20.根据权利要求19所述的恢复文件的装置,在所述用户模式中加载的内存映像文件包括针对当前进程的所有数据和可移植的可执行文件的内存映像,并且在所述内核模式中加载的内存映像文件包括针对内核模式的所有数据和可移植的可执行文件的内存映像。
21.一种其上存储有指令的计算机可读介质,所述指令当被执行时使得计算设备执行根据权利要求1-10中任一项所述的方法。
CN202211524704.XA 2022-12-01 2022-12-01 恢复文件的方法、装置和计算机可读介质 Active CN115827323B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211524704.XA CN115827323B (zh) 2022-12-01 2022-12-01 恢复文件的方法、装置和计算机可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211524704.XA CN115827323B (zh) 2022-12-01 2022-12-01 恢复文件的方法、装置和计算机可读介质

Publications (2)

Publication Number Publication Date
CN115827323A true CN115827323A (zh) 2023-03-21
CN115827323B CN115827323B (zh) 2024-02-02

Family

ID=85533308

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211524704.XA Active CN115827323B (zh) 2022-12-01 2022-12-01 恢复文件的方法、装置和计算机可读介质

Country Status (1)

Country Link
CN (1) CN115827323B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102945288A (zh) * 2012-11-29 2013-02-27 重庆邮电大学 一种物理内存镜像中文本数据文件提取方法
US20130159646A1 (en) * 2011-12-19 2013-06-20 International Business Machines Corporation Selecting files to backup in a block level backup
KR20150015329A (ko) * 2013-07-31 2015-02-10 남기훈 네트워크 통신에 기반을 둔 스마트 디바이스의 데이터 복구 방법
CN106295340A (zh) * 2016-08-03 2017-01-04 武汉斗鱼网络科技有限公司 一种程序文件恢复系统及方法
CN106650327A (zh) * 2016-11-24 2017-05-10 湖南鼎源蓝剑信息科技有限公司 基于动态恢复so文件的Android应用加固方法
WO2018033062A1 (zh) * 2016-08-17 2018-02-22 中兴通讯股份有限公司 一种系统磁盘管理方法和装置
CN109918912A (zh) * 2019-03-27 2019-06-21 深信服科技股份有限公司 一种针对计算机病毒的文件修复方法及相关设备
CN112115002A (zh) * 2020-09-21 2020-12-22 武汉轻工大学 从损坏或不可信机械硬盘恢复文件的方法及装置
CN113868648A (zh) * 2021-09-08 2021-12-31 南京烽火天地通信科技有限公司 一种针对恶意文件的自动化脱壳引擎实现方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130159646A1 (en) * 2011-12-19 2013-06-20 International Business Machines Corporation Selecting files to backup in a block level backup
CN102945288A (zh) * 2012-11-29 2013-02-27 重庆邮电大学 一种物理内存镜像中文本数据文件提取方法
KR20150015329A (ko) * 2013-07-31 2015-02-10 남기훈 네트워크 통신에 기반을 둔 스마트 디바이스의 데이터 복구 방법
CN106295340A (zh) * 2016-08-03 2017-01-04 武汉斗鱼网络科技有限公司 一种程序文件恢复系统及方法
WO2018033062A1 (zh) * 2016-08-17 2018-02-22 中兴通讯股份有限公司 一种系统磁盘管理方法和装置
CN106650327A (zh) * 2016-11-24 2017-05-10 湖南鼎源蓝剑信息科技有限公司 基于动态恢复so文件的Android应用加固方法
CN109918912A (zh) * 2019-03-27 2019-06-21 深信服科技股份有限公司 一种针对计算机病毒的文件修复方法及相关设备
CN112115002A (zh) * 2020-09-21 2020-12-22 武汉轻工大学 从损坏或不可信机械硬盘恢复文件的方法及装置
CN113868648A (zh) * 2021-09-08 2021-12-31 南京烽火天地通信科技有限公司 一种针对恶意文件的自动化脱壳引擎实现方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
NICK0428之歌: "Dump文件是什么,Dump文件分为几种", Retrieved from the Internet <URL:baijiahao.baidu.com/s?id=1721658899100849039&wfr=spider&for=pc> *

Also Published As

Publication number Publication date
CN115827323B (zh) 2024-02-02

Similar Documents

Publication Publication Date Title
JP5644777B2 (ja) ファイル群整合性検証システム、ファイル群整合性検証方法およびファイル群整合性検証用プログラム
CN111258666B (zh) 计算机文件的读取方法、装置、计算机系统及存储介质
JP2006065845A (ja) 最適化された復元プランの生成
CN110727597B (zh) 一种基于日志排查无效代码补全用例的方法
US20190317920A1 (en) Write operation verification method and apparatus
US8347052B2 (en) Initializing of a memory area
CN113157347A (zh) 一种探针的自动部署方法、电子设备和存储介质
US10185573B2 (en) Caching based operating system installation
US8032618B2 (en) Asynchronous update of virtualized applications
CN115827323B (zh) 恢复文件的方法、装置和计算机可读介质
CN115080114B (zh) 应用程序的移植处理方法、装置和介质
CN109002710B (zh) 一种检测方法、装置及计算机可读存储介质
US20060149732A1 (en) Library extracting device and method for automatically extracting libraries of an embedded operating system
CN112596954A (zh) 数据备份及重建方法、装置、设备及存储介质
TWI733157B (zh) 一種加快嵌入式系統啟動速度的方法及其嵌入式系統
CN115659342B (zh) 一种无害执行pe文件的方法、装置、电子设备及存储介质
CN111695327A (zh) 一种乱码修复方法、装置、电子设备及可读存储介质
WO2017050029A1 (zh) 一种数据块处理的方法、装置及设备
CN111414162B (zh) 一种数据处理方法、装置及其设备
CN115421785B (zh) 应用程序的移植处理方法、装置和介质
KR102310766B1 (ko) 어플리케이션의 무결성 검사방법
CN115454827B (zh) 兼容性检测方法、系统、设备和介质
CN111506299B (zh) 前端数据验证方法、装置和计算机设备
US20230269104A1 (en) Method of managing data history and device performing the same
CN109857302B (zh) 电子书信息的修复方法、电子设备及计算机存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant