一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

文件脱壳方法及装置与流程

2021-12-17 21:46:00 来源:中国专利 TAG:
1.本技术实施例涉及软件
技术领域
:,具体涉及一种文件脱壳方法及装置。
背景技术
::2.加壳是利用特殊的算法,对可执行文件里的资源进行压缩。加壳过的程序可以直接运行,但是不能查看源代码,要经过脱壳才可以查看源代码。一般来说,程序加壳的目的是阻止外部程序或软件对加壳程序本身的反汇编分析或者动态分析,以达到保护壳内原始程序以及软件不被外部程序破坏,保证原始程序正常运行。3.但是,随着互联网的快速发展,一些恶意的程序也使用了加壳技术,使得安全分析者较难实现对恶意程序的成功识别。为此,现有技术中有手动脱壳和自动脱壳的两种方式,对加壳程序进行脱壳。4.手动脱壳可以针对不同的加壳程序实现脱壳,但是若安全分析者需要对大量的加壳程序进行脱壳,则所需花费时间长,手动脱壳不再适用。5.自动脱壳是采用脱壳机自动对加壳程序进行脱壳,但是不同软件甚至不同版本加的壳,脱壳处理的方法都不相同,因此针对不同版本的壳需要研发不同的脱壳机,导致研发工作量大。技术实现要素:6.本技术实施例提供一种文件脱壳方法及装置,可以实现自动脱壳,进而减少脱壳时间;并且可以针对不同类型的加壳文件进行自动脱壳,从而无需针对不同类型的加壳文件研发大量的脱壳机,进而节省研发时间。7.第一方面,本技术实施例提供一种文件脱壳方法,所述方法包括:8.获取第一文件格式的第一加壳文件;9.将所述第一加壳文件加载至预设的模拟执行引擎的内存空间中,得到所述第一加壳文件的第一模拟执行文件;10.通过所述模拟执行引擎执行所述第一模拟执行文件,得到所述第一模拟执行文件的第一内存映射文件,其中,所述模拟执行引擎可执行多个平台的文件格式的文件;11.获取所述第一内存映射文件,并将所述第一内存映射文件作为所述第一加壳文件的第一目标文件,其中,所述第一目标文件是指所述第一加壳文件脱壳后的文件。12.第二方面,本技术实施例提供一种文件脱壳装置,所述文件脱壳装置包括:13.第一获取单元,用于获取第一文件格式的第一加壳文件;14.加载单元,用于将所述第一加壳文件加载至预设的模拟执行引擎的内存空间中,得到所述第一加壳文件的第一模拟执行文件;15.执行单元,用于通过所述模拟执行引擎执行所述第一模拟执行文件,得到所述第一模拟执行文件的第一内存映射文件;16.第二获取单元,用于获取所述第一内存映射文件,并将所述第一内存映射文件作为所述第一加壳文件的第一目标文件,所述第一目标文件是指所述第一加壳文件脱壳后的文件。17.在本技术的一些实施例中,所述执行单元具体还用于:18.通过所述模拟执行引擎执行所述第一模拟执行文件;19.当所述第一模拟执行文件执行中断时,获取所述第一模拟执行文件执行中断处的当前执行指令;20.将所述当前执行指令输入至预设的跳转线程,以使得所述跳转线程输出所述当前执行指令的执行结果;21.通过所述模拟执行引擎,根据所述执行结果继续执行所述第一模拟执行文件,直至所述第一模拟执行文件执行完成,得到所述第一模拟执行文件的第一内存映射文件。22.在本技术的一些实施例中,在所述将所述当前执行指令输入至预设的跳转线程,以使得所述跳转线程输出所述当前执行指令的执行结果的步骤之前,所述执行单元具体还用于:23.检测所述当前执行指令的指令类型,其中,所述指令类型包括系统的调度指令;24.在本技术的一些实施例中,所述执行单元具体还用于:25.若所述当前执行指令的指令类型为系统的调度指令,则将所述当前执行指令输入至预设的跳转线程,以使得所述跳转线程输出所述当前执行指令的执行结果。26.在本技术的一些实施例中,所述执行单元具体还用于:27.若检测到所述当前执行指令为目标函数,则确定所述当前执行指令为系统的调度指令,其中,所述目标函数是指所述第一加壳文件的导入地址表中对应的函数。28.在本技术的一些实施例中,所述加载单元具体还用于:29.对所述第一加壳文件进行解析;30.将解析后的所述第一加壳文件映射至预设的模拟执行引擎的内存空间中,得到所述第一加壳文件的初步执行文件;31.修复所述初步执行文件的待修复文件,得到所述第一加壳文件的第一模拟执行文件,其中,所述待修复文件包括所述第一加壳文件的导入地址表。32.在本技术的一些实施例中,所述文件脱壳装置还包括识别单元,所述识别单元具体用于:33.获取样本文件,并获取所述样本文件的可执行区段的熵值总和;34.当所述熵值总和大于预设阈值,且所述样本文件中存在目标区段时,将所述样本文件确定为第一加壳文件,其中,所述目标区段是指在所述样本文件中目标标识所对应标识的区段,所述目标标识是指与预设的区段标识不相同的区段标识。35.在本技术的一些实施例中,所述样本文件包括游戏外挂程序文件,所述识别单元具体还用于:36.获取游戏外挂程序文件作为样本文件;37.获取所述游戏外挂程序文件的可执行区段的熵值总和,作为所述样本文件的可执行区段的熵值总和。38.在本技术的一些实施例中,所述文件脱壳装置还包括提取单元,所述提取单元具体用于:39.根据所述第一目标文件进行样本特征提取,得到所述第一加壳文件的样本特征。40.在本技术的一些实施例中,所述第一获取单元具体还用于:41.获取第二文件格式的第二加壳文件,所述第一文件格式和所述第二文件格式是不同类型的文件格式。42.在本技术的一些实施例中,所述加载单元具体还用于:43.将所述第二加壳文件加载至所述模拟执行引擎的内存空间中,得到所述第二加壳文件的第二模拟执行文件;44.在本技术的一些实施例中,所述执行单元具体还用于:45.通过所述模拟执行引擎执行所述第二模拟执行文件,得到所述第二模拟执行文件的第二内存映射文件;46.在本技术的一些实施例中,所述第二获取单元具体还用于:47.获取所述第二内存映射文件,并将所述第二内存映射文件作为所述第二加壳文件的第二目标文件,其中,所述第二目标文件是指所述第二加壳文件脱壳后的文件。48.本技术实施例通过获取第一文件格式的第一加壳文件,并将第一加壳文件加载至预设的模拟执行引擎的内存空间中,得到第一加壳文件的第一模拟执行文件;然后,通过预设的模拟执行引擎执行第一模拟执行文件,得到第一模拟执行文件的第一内存映射文件;并将第一内存映射文件作为第一加壳文件脱壳后的文件。一方面,可以实现自动脱壳,进而减少脱壳时间。另一方面。由于预设的模拟执行引擎可以执行多个平台的文件格式的文件(即预设的模拟执行引擎为可以跨平台执行文件的模拟执行引擎),因此第一文件格式可以是任意的文件格式(也即第一加壳文件可以是任意类型的文件格式),实现了针对不同类型的加壳文件进行自动脱壳;从而无需针对不同类型的加壳文件研发大量的脱壳机,进而节省研发时间。附图说明49.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。50.图1是本技术实施例提供的文件脱壳方法的场景示意图;51.图2是本技术实施例提供的文件脱壳方法的流程图;52.图3是本技术实施例提供的加壳文件执行映射至内存的场景示意图;53.图4是本技术实施例提供的对tp系统中的样本进行特征提取的一种流程示意图;54.图5是本技术实施例提供的加壳文件脱壳过程的一种示意图;55.图6是本技术实施例提供的脱壳过程所采用的调试工具展示界面的一种示意图;56.图7是本技术实施例提供的测试程序文件展示界面的一种场景示意图;57.图8是本技术实施例中提供的测试程序文件展示界面的另一种场景示意图;58.图9是本技术实施例中提供的测试过程所采用的文件工具展示界面的一种场景示意图;59.图10是本技术实施例中提供的测试程序文件展示界面的又一种场景示意图;60.图11是本技术实施例中提供的测试程序文件展示界面的再一种场景示意图;61.图12是本技术实施例中提供的文件脱壳装置的一个实施例结构示意图;62.图13是本技术实施例提供的计算机设备的结构示意图。具体实施方式63.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。64.在本技术实施例的描述中,需要理解的是,术语“第一”、“第二”用于区别不同对象,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。65.本技术实施例提供一种文件脱壳方法及装置。其中,该文件脱壳装置可以集成在计算机设备中,该计算机设备可以是服务器,也可以是终端等设备。66.壳是一段执行于原始程序前的代码。原始程序的代码在加壳的过程中可能被压缩、加密。当加壳后的文件执行时,壳这一段代码先于原始程序运行,他把压缩、加密后的代码还原成原始程序代码,然后再把执行权交还给原始代码。软件的壳分为加密壳、压缩壳、伪装壳、多层壳等类,常见的加壳工具有:upx(theultimatepackerforexecutables,可执行程序文件压缩器)、aspack、asprotect、vmprotect等。67.本技术实施例中,所谓文件脱壳,是指对加壳文件进行解压或解密还原的过程。在本技术实施例中,主要指的是对加壳文件如pe(portableexecutablefileformat,可移植的执行体,pe格式是目前windows平台的主流可执行文件格式)文件进行解压或解密,找出所需的目标文件,比如,对加壳后的游戏外挂程序文件进行脱壳,得到加壳后的游戏外挂程序文件对应的原始文件(即目标文件)。该脱壳出来的目标文件后续可以供安全分析者进行分析,以便作出进一步的安全防护操作。68.例如,参见图1,以该文件脱壳装置集成在计算机设备中为例,该计算机设备可以获取加壳文件,将加壳文件解析得到模拟执行文件,并将模拟执行文件加载至预设的模拟执行引擎的内存空间中;然后计算机设备通过模拟执行引擎模拟执行该模拟执行文件,得到该模拟执行文件的内存映射文件;最后,计算机设备获取该内存映射文件,并将该内存映射文件作为加壳文件脱壳后的文件,即目标文件。69.以下结合附图分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于附图所示的顺序执行所示出或描述的步骤。70.本技术实施例文件脱壳方法的执行主体可以为本技术实施例提供的文件脱壳装置,或者集成了该文件脱壳装置的服务器设备、物理主机或者用户设备(userequipment,ue)等不同类型的计算机设备,其中,文件脱壳装置可以采用硬件或者软件的方式实现。本实施例将从计算机设备的角度进行描述,该计算机设备可以是服务器,也可以是终端等设备;其中,该终端可以包括平板电脑、笔记本电脑、个人计算(pc,personalcomputer)、微型处理盒子、或者其他设备等。71.如图2所示,该文件脱壳方法的具体流程可以如下:72.201、获取第一文件格式的第一加壳文件。73.其中,第一文件格式,可以是任意环境的平台,如windows系统平台、安卓系统平台、ios(inputoutputsystem,输入输出系统)系统平台等可执行的文件格式,例如,第一文件格式可以是windows系统平台可执行的pe格式,也可以是安卓系统平台可执行的apk格式、exe格式,或者是ios系统平台可执行的ipa格式,等等。74.加壳文件的壳类型可以是upx类型、aspack类型、asprotect类型、vmprotec类型,等等。75.第一加壳文件是指在第一文件格式下的加壳文件。76.例如,计算机设备可以获取windows系统平台的文件格式(如pe格式)的加壳文件(如vmprotec类型的加壳pe文件),作为第一文件格式的第一加壳文件。77.由于加壳文件正常执行或加载,系统已经完成了解压或者解密的操作。例如,在pe格式的加壳文件被windows系统正常执行后,加壳文件对应的原文件会被映像至windows系统的内存,即相当于windows系统已经完成了解压或者解密的操作,如图3所示。78.因此,抓取映射至windows系统内存中的文件(其中,抓取映射至windows系统内存中的文件,也称为“转存”,后续所称的“dump文件”即映射至加壳文件执行系统的内存中的文件),即可完成脱壳。因此,可以通过“转存”的方式完成文件脱壳。79.202、将第一加壳文件加载至预设的模拟执行引擎的内存空间中,得到第一加壳文件的第一模拟执行文件。80.其中,预设的模拟执行引擎是可跨平台的模拟执行引擎,即模拟执行引擎可执行多种类型文件格式的文件,例如,pe文件格式、apk格式、exe格式等。模拟执行引擎可以有多种,例如,开源的跨平台模拟执行引擎unicorn,等。81.模拟执行是指在软件层模拟物理cpu(centralprocessingunit,中央处理器),仅关注cpu指令操作,而忽略机器设备的影响。由于是模拟执行代码,而无需通过真实cpu,因此模拟执行可以应用于安全分析恶意软件中,以保证执行代码过程的安全。82.在一些实施例中,步骤202具体包括:计算机设备对第一加壳文件进行解析,并将解析后的第一加壳文件加载至预设的模拟执行引擎的内存空间中,得到第一加壳文件的第一模拟执行文件。83.其中,第一模拟执行文件是指第一加壳文件解析后加载至模拟执行引擎内存中的文件。第一模拟执行文件用于模拟执行引擎进行模拟执行,以使得第一模拟执行文件被映射至模拟执行引擎的内存空间中,得到第一内存映射文件。84.由于模拟执行引擎的执行环境与加壳文件原始执行环境存在差异,加壳文件解析加载至模拟执行引擎的内存空间后,有些文件数据需要修复,否则模拟执行引擎无法正常执行加壳文件。例如,修复iat(importaddresstable,导入地址表)、根据加载到内存空间中的基址进行重定位表的修复。85.其中,重定位就是你本来这个程序理论上要占据这个地址,但是由于某种原因,这个地址现在不能让你占用,你必须转移到别的地址,这就需要基址重定位。由于第一加壳文件被加载至模拟执行引擎的内存空间,后续将采用模拟执行引擎执行第一加壳文件的第一模拟执行文件,因此需根据加载到模拟执行引擎中的基址进行重定位表的修复。86.可以理解的是,若加载至模拟执行引擎的内存空间的基址为第一加壳文件中默认的基址,则可以省去根据加载到模拟执行引擎中的基址进行重定位表的修复,进而省去根据重定位表修复加载至模拟执行引擎内存空间中的第一加壳文件。87.为此,在一些实施例中,步骤202具体包括:计算机设备对第一加壳文件进行解析;将解析后的第一加壳文件映射至预设的模拟执行引擎的内存空间中,得到第一加壳文件的初步执行文件;修复初步执行文件的待修复文件,得到第一加壳文件的第一模拟执行文件。其中,待修复文件包括第一加壳文件的导入地址表(即iat表)、重定位表等等。88.在这里,初步执行文件是指第一加壳文件解析后加载至模拟执行引擎内存中的文件。第一模拟执行文件是指修复后的初步执行文件。89.由以上内容可以看出,通过对初步执行文件进行修复得到第一模拟执行文件,保证了后续第一模拟执行文件可以被模拟执行引擎正常执行。90.203、通过模拟执行引擎执行第一模拟执行文件,得到第一模拟执行文件的第一内存映射文件。91.其中,模拟执行引擎可执行多个平台的文件格式的文件,即可执行多种类型文件格式的文件。92.第一内存映射文件是指模拟执行引擎执行第一模拟执行文件后,映射至模拟执行引擎内存中的文件。93.具体地,在一些实施例中,计算机设备控制模拟执行引擎开始模拟执行第一模拟执行文件,以使得模拟执行引擎模拟执行第一模拟执行文件,并将第一模拟执行文件映射至模拟执行引擎的内存空间中,得到第一模拟执行文件的内存映射文件。94.在模拟执行引擎模拟执行模拟执行文件过程中,可能会出现执行中断的情况。95.为此,在一些实施例中,步骤203具体包括以下步骤a1~a4,其中:96.a1、通过模拟执行引擎执行第一模拟执行文件。97.a2、当第一模拟执行文件执行中断时,获取第一模拟执行文件执行中断处的当前执行指令。98.其中,当前执行指令是指模拟执行引擎在执行第一模拟执行文件过程中出现中断时,第一模拟执行文件出现中断的位置对应的函数指令。99.具体地,计算机设备控制模拟执行引擎开始模拟执行第一模拟执行文件。在模拟执行引擎执行第一模拟执行文件的过程中,计算机设备对模拟执行引擎的模拟执行情况进行检测。当检测到模拟执行引擎在执行第一模拟执行文件过程中出现中断时,计算机设备检测出第一模拟执行文件出现中断的位置,并获取第一模拟执行文件出现中断的位置对应的当前执行指令。100.例如,模拟执行引擎unicorn在模拟执行pe文件过程中,计算机设备检测到pe文件在执行到函数跳转指令“calleax”时出现了中断,函数跳转指令“calleax”中“eax”的值为“0xbadf8”,该值(“0xbadf8”)对应了iat表中的localalloc函数,如图6所示。则计算机设备获取该localalloc函数作为第一模拟执行文件执行中断处的当前执行指令。101.a3、将当前执行指令输入至预设的跳转线程,以使得跳转线程输出当前执行指令的执行结果。102.其中,预设的跳转线程是指预先设定的、用于执行预设类型的指令(如系统的调度指令)并输出指令的执行结果的代码。103.由于当前执行指令中断执行时,会影响到模拟执行引擎继续执行第一模拟执行文件,进而影响文件脱壳过程。为了解决该问题,在本技术的一些实施例中,计算机设备将当前执行指令输入至预设的跳转线程中,以使得跳转线程输出当前执行指令的执行结果。104.为了方便理解,接以上步骤a2中的例子继续说明。例如,计算机设备将localalloc函数输入至预设的跳转线程,以使得预设的跳转线程输出该localalloc函数的执行结果。105.此外,为了检测模拟执行引擎在执行模拟执行文件时出现中断的原因,通过测试定位发现,模拟执行引擎在执行到系统的调度指令时,由于找不到相对应的系统模块而导致了中断。106.为此,在一些实施例中,在步骤a3之前还包括:检测当前执行指令的指令类型。其中,指令类型包括系统的调度指令。107.例如,当计算机设备检测到当前执行指令为与操作系统(如windows系统、安卓系统、ios系统)耦合度较高的函数调用指令(如远跳转指令“jmp--ff25”)时,则计算机设备确定当前执行指令的指令类型为系统的调度指令。108.为了准确地确定当前执行指令是否为系统地调度指令,在一些实施例中,“检测当前执行执行的指令类型”具体包括:若检测到当前执行指令为目标函数,则确定当前执行指令为系统的调度指令。其中,目标函数是指第一加壳文件的导入地址表中对应的函数。109.例如,步骤a2的例子中,若计算机设备检测到中断处的当前执行指令为iat表中对应的函数(localalloc函数),则计算机设备确定当前执行指令的指令类型为系统的调度指令。110.由以上内容可以看出,通过检测当前执行指令是否为第一加壳文件的iat表中对应的函数,可以快速准确地检测出当前执行指令的指令类型是否为系统地调度指令。111.在一些实施例中,步骤a3“将当前执行指令输入至预设的跳转线程,以使得跳转线程输出当前执行指令的执行结果”具体包括:若当前执行指令的指令类型为系统的调度指令,则将当前执行指令输入至预设的跳转线程,以使得跳转线程输出当前执行指令的执行结果。112.例如,当计算机设备检测到当前执行指令为与操作系统耦合度较高的函数调用指令(如远跳转指令“jmp--ff25”)时,则计算机设备将当前执行指令(远跳转指令“jmp--ff25”)输入至预设的跳转线程,以使得跳转线程输出当前执行指令(远跳转指令“jmp--ff25”)的执行结果。113.又如,当计算机设备检测到当前执行指令为iat表中对应的函数(如localalloc函数)时,则计算机设备将当前执行指令(localalloc函数)输入至预设的跳转线程,以使得跳转线程输出当前执行指令(localalloc函数)的执行结果。114.由以上内容可以看出,计算机设备通过检测当前执行指令的指令类型,若当前执行指令的指令类型为系统的调度指令,则将当前执行指令输入至预设的跳转线程,以使得跳转线程输出当前执行指令的执行结果,避免了当前执行指令中断执行时,会影响到模拟执行引擎继续执行第一模拟执行文件,进而影响文件脱壳过程。115.a4、通过模拟执行引擎,根据执行结果继续执行第一模拟执行文件,直至第一模拟执行文件执行完成,得到第一模拟执行文件的第一内存映射文件。116.当得到当前执行指令的执行结果后,计算机设备获取跳转线程输出的当前执行指令的执行结果,并将执行结果输入至模拟执行引擎,以使得模拟执行引擎根据该执行结果,从中断的位置继续模拟执行第一模拟执行文件,直至第一模拟执行文件执行完成,得到第一模拟执行文件模拟执行的第一内存映射文件。117.例如,计算机设备将当前执行指令(如localalloc函数)输入至预设的跳转线程,以使得跳转线程输出当前执行指令(localalloc函数)的执行结果后,将执行结果输入至模拟执行引擎(如unicorn)中,并控制模拟执行引擎(unicorn)继续执行第一模拟执行文件,直至第一模拟执行文件执行完成。118.由以上内容可以看出,计算机设备通过将当前执行指令输入至预设的跳转线程,以使得跳转线程输出当前执行指令的执行结果,避免了当前执行指令中断执行时,会影响到模拟执行引擎继续执行第一模拟执行文件,进而影响文件脱壳过程。。119.204、获取第一内存映射文件,并将第一内存映射文件作为第一加壳文件的第一目标文件。120.其中,第一目标文件是指第一加壳文件脱壳后的文件。121.具体地,计算机设备从模拟执行引擎的内存空间中,抓取第一内存映射文件,并将所抓取的第一内存映射文件作为第一加壳文件脱壳后的文件(即第一目标文件)。122.例如,计算机设备将加壳的pe文件解析并加载至模拟执行引擎unicorn的内存空间中;然后,通过unicorn模拟执行加载至unicorn内存空间中的pe文件,得到加壳的pe文件映射到unicorn内存空间的内存映射文件(简称为“dump文件”)。最后,计算机设备抓取加壳的pe文件映射到unicorn内存空间的内存映射文件(即实现“转存”“dump文件”),并将所抓取的“dump文件”作为加壳的pe文件脱壳后对应的原始文件。123.由以上内容可以看出,本技术实施例中通过获取第一文件格式的第一加壳文件,并将第一加壳加载至预设的模拟执行引擎的内存空间中,得到第一加壳文件的第一模拟执行文件;然后,通过模拟执行引擎执行所述第一模拟执行文件,得到第一模拟执行文件的第一内存映射文件;并将第一内存映射文件作为第一加壳文件脱壳后的文件。一方面,可以实现自动脱壳,进而减少脱壳时间。另一方面。由于预设的模拟执行引擎可以执行多个平台的文件格式的文件(即预设的模拟执行引擎为可以跨平台执行文件的模拟执行引擎),因此第一文件格式可以是任意的文件格式(也即第一加壳文件可以是任意类型的文件格式),实现了针对不同类型的加壳文件进行自动脱壳;从而无需针对不同类型的加壳文件研发大量的脱壳机,进而节省研发时间。124.在某些场景下,通常需要先识别文件是否为加壳文件,以再确定是否对文件进行脱壳。例如,安全分析者在对样本文件进行安全分析时,需要确定样本文件是否为加壳文件,进而对加壳的样本文件进行脱壳。125.为此,在本技术的一些实施例中,该文件脱壳方法还包括:获取样本文件,并获取样本文件的可执行区段的熵值总和;当熵值总和大于预设阈值,且样本文件中存在目标区段时,将样本文件确定为第一加壳文件。其中,目标区段是指在样本文件中目标标识所对应标识的区段,目标标识是指与预设的区段标识不相同的区段标识。126.举例来说,计算机设备可以将外挂、对游戏进行注入的非法模块、客户端的非法加速功能、模拟按键、调试或木马等文件作为样本文件。127.在一些实施例中,一方面,计算机设备可以将样本文件所包含的分区区段的关键字段与预设字段进行比较;当分区区段的关键字段与预设的关键字段相同时,确定该分区区段为可执行区段,并计算可执行区段的熵值。然后,计算机设备将所有可执行区段的熵值相加,得到样本文件的可执行区段的熵值总和。其中,分区区段是样本文件包含的任一区段。预设字段是一个枚举字段,用于表示该字段对应所属的区段为可执行区段。128.另一方面,计算机设备将样本文件所包含的分区区段的区段标识与预设的区段标识进行对比,以确定样本文件中是否存在目标区段。其中,目标区段是指在样本文件中目标标识所对应标识的区段,目标标识是指与预设的区段标识不相同的区段标识。129.当熵值总和大于预设阈值、且样本文件中存在目标区段时,将样本文件确定为第一加壳文件。当熵值总和小于或等于预设阈值时,将样本文件确定为无壳文件。130.例如,预设的区段标识包括:131..data、.rsrc、.rdata、.rmnet、.reloc、.www0、.tls、.idata、.tvm0、.tvm1、.sedata、.pdata、.bxpck、.main、.bss、.crt、.hd0、.las0、.nx、.code、.textbss、code、.edata、.idata、.debug_a、.debug_l、.debug_p、.stab、.stabstr、.bba0、.pediy、bss、data、.ecode、.debug_f、.debug_i、.debug_r、.debug_s、.dtors等。132.样本文件所包含的分区区段的区段标识分别为:133..text、.data、.rsrc、.rdata、.rmnet。其中,区段标识“.text”与预设的区段标识不相同,则确定样本文件中存在目标区段,目标区段为:该区段标识“.text”对应的分区区段。134.假设预设阈值为6.70、样本文件的可执行区段的熵值总和为6.75。由于样本文件中存在目标区段(区段标识“.text”对应的分区区段)、且样本文件的可执行区段的熵值总和(6.75)大于预设阈值(6.70),因此可以将样本文件确定为第一加壳文件。135.在一些实施例中,计算机设备可以将样本文件的文件特征与预设壳特征进行对比,当样本文件与预设壳特征匹配时,将样本文件确定为第一加壳文件。136.当样本文件与预设壳特征不匹配时,获取样本文件的可执行区段的熵值总和、确定样本文件中是否存在目标区段;当熵值总和大于预设阈值,且样本文件中存在目标区段时,将样本文件确定为第一加壳文件。137.例如,预设壳特征可以为已知壳(如upx、aspack、asprotect、vmprotect等类型的壳)的壳特征。当样本文件的文件特征与预设壳特征(如vmprotect类型壳的壳特征)匹配时,可以将样本文件确定为第一加壳文件。138.由以上内容可以看出,计算机设备通过获取样本文件的可执行区段的熵值总和,检测熵值总和是否大于预设阈值;并检测样本文件中是否存在目标区段,从而可以确定样本文件是否为加壳文件,进而为判定样本文件是否需要脱壳提供了依据。139.在某些场景中,如在游戏外挂时,为了系统及用户使用的安全,通常需要对游戏外挂程序文件进行样本分析。在对游戏外挂程序文件进行样本分析,首先需要检测游戏外挂程序文件是否为加壳文件。140.为此,在一些实施例中,样本文件包括游戏外挂程序文件,计算机设备可以获取游戏外挂程序文件作为样本文件;并获取游戏外挂程序文件的可执行区段的熵值总和,作为样本文件的可执行区段的熵值总和。141.由以上内容可以看出,计算机设备通过获取游戏外挂程序文件的可执行区段的熵值总和,作为样本文件的可执行区段的熵值总和。进而可以确定游戏外挂程序文件是否为加壳文件,进而为判定游戏外挂程序文件是否需要脱壳提供了依据。142.在某些场景下,如在计算机应用过程中,外挂、对游戏进行注入的非法模块、客户端的非法加速功能、模拟按键、调试或木马等文件,通常会影响系统安全或用户使用安全。为了有效地保护系统安全或用户使用安全,安全分析者需要对这些文件进行分析,但是这些文件通常会被加壳。143.为此,可以采用上述文件脱壳方法对外挂、对游戏进行注入的非法模块、客户端的非法加速功能、模拟按键、调试或木马等文件进行脱壳。144.例如,tp(tenprotect,腾讯自主研发推出的安全系统),可以有效地保护有效免受外挂侵犯,同时具备防止木马盗号功能,能有效地让用户游戏账号和虚拟财产不被窃取。为了保证tp能有效地保护有效免受外挂侵犯,安全分析者需要对外挂样本进行分析。但是,随着外挂对抗技术地更新迭代,外挂文件通常会被加壳;这直接影响了安全分析者对外挂样本进行特征提取,进而影响对外挂样本的判定、分析。145.为此,可以获取加壳后的游戏外挂程序文件作为第一加壳文件。并通过上述文件脱壳方法对加壳的游戏外挂程序文件(即第一加壳文件)进行脱壳,得到加壳的游戏外挂程序文件脱壳后的文件(即第一目标文件)。146.进一步地,可以对脱壳后的文件进行样本特征提取,从而得到外挂、对游戏进行注入的非法模块、客户端的非法加速功能、模拟按键、调试或木马等文件的样本特征。147.即在一些实施例中,该文件脱壳方法还包括:根据第一目标文件进行样本特征提取,得到第一加壳文件的样本特征。148.例如,可以对加壳的游戏外挂程序文件脱壳后的文件(即第一目标文件,也即加壳的游戏外挂程序文件对应的原始文件)进行样本特征提取,得到游戏外挂程序文件的样本特征(即第一加壳文件的样本特征),以便安全分析者进行分析,作出进一步的安全防护操作。149.由以上内容可以看出,计算机设备通过对第一加壳文件脱壳后得到的第一目标文件进行样本特征提取,使得对第一加壳文件所提取的样本特征更全面,可以为这些加壳文件的分析提供更全面的样本特征,进而有效地保护系统安全或用户使用的安全。150.本技术实施例所提供的文件脱壳方法,除了可以对第一文件格式的第一加壳文件进行脱壳外,还可以对第一文件格式外的加壳文件进行脱壳,即本技术实施例所提供的文件脱壳方法可以实现跨平台脱壳。151.即在本技术的一些实施例中,该文件脱壳方法还包括:获取第二文件格式的第二加壳文件;将第二加壳文件加载至模拟执行引擎的内存空间中,得到第二加壳文件的第二模拟执行文件;通过模拟执行引擎执行第二模拟执行文件,得到第二模拟执行文件的第二内存映射文件;获取第二内存映射文件,并将第二内存映射文件作为第二加壳文件的第二目标文件。其中,第二目标文件是指第二加壳文件脱壳后的文件。152.其中,第二文件格式,可以是任意环境的平台,如windows系统平台、安卓系统平台、ios(inputoutputsystem,输入输出系统)系统平台等可执行的文件格式,例如,第二文件格式可以是windows系统平台可执行的pe格式,也可以是安卓系统平台可执行的apk格式、exe格式,或者是ios系统平台可执行的ipa格式,等等。153.第一文件格式和第二文件格式是不同类型的文件格式。154.可以理解的是,第一文件格式与第二文件格式的命名区别,仅用于体现本技术实施例所提供的文件脱壳方法可应用于不同平台的文件格式的加壳文件。在这里,第一文件格式与第二文件格式可以是不同平台可执行的不同类型的文件格式,也可以是相同平台可执行的不同类型的文件格式。例如,第一文件格式为windows系统平台可执行的pe格式,第二文件格式为安卓系统平台可执行的apk格式。又如,第一文件格式为安卓系统平台可执行的exe格式,第二文件格式为安卓系统平台可执行的apk格式。155.同理,“第二加壳文件”、“第二模拟执行文件”、“第二内存映射文件”、“第二目标文件”,与“第一加壳文件”、“第一模拟执行文件”、“第一内存映射文件”、“第一目标文件”的命名区别,也是用于体现本技术实施例所提供的文件脱壳方法可应用于不同平台的文件格式的加壳文件。156.具体地,对第二文件格式的第二加壳文件进行脱壳的具体实施方式可以参照上述对第一文件格式的第一加壳文件的实施例,在此不再赘述。157.由以上内容可以看出,通过上述的文件脱壳方法,计算机设备可以实现跨平台脱壳。158.根据前面实施例所描述的方法,以下将举例作进一步详细说明。159.例如,请参照图4,图4是本技术实施例提供的对tp系统中的样本进行特征提取的一种流程示意图。160.该文件脱壳方法可以应用于游戏安全tp系统样本库的样本文件中。若tp客户端的安全组件收集上来的样本文件为加壳文件,则计算机设备对从tp客户端的安全组件收集上来的加壳样本进行脱壳处理。然后,计算机设备对脱壳后样本文件进一步进行特征提取。161.请参照图5,图5是本技术实施例提供的加壳文件脱壳过程的一种示意图。在本实施例中,将以该文件脱壳装置具体集成在计算机设备、加壳文件是vmprotect壳类型的pe文件、预设的模拟执行引擎是开源的跨平台模拟执行引擎unicorn为例,说明加壳文件的脱壳过程。162.(一)unicorn初始化。163.为了便于后续使用unicorn,在此,先对unicorn进行基本的初始化,包括对unicorn的一些寄存器(如esp、cs、ss、ds、es、fs等)初始化。164.(二)pe文件解析和加载。165.首先,计算机设备对pe文件进行解析,并手动加载到unicorn的内存空间中。然后,计算机设备对pe文件的iat表进行修复,并根据映射到unicorn中的基址进行重定位表的修复。166.由于pe文件被加载至unicorn的内存空间,后续将采用unicorn执行,因此需根据加载到unicorn中的基址进行重定位表的修复。167.可以理解的是,若加载至unicorn的内存空间的基址为pe文件中默认的基址,则可以省去根据加载到unicorn中的基址进行重定位表的修复,进而省去根据重定位表修复加载至unicorn内存空间中的pe文件。168.(三)unicorn开始模拟执行。169.通过unicorn开始执行加载至unicorn内存空间中的pe文件。在unicorn执行过程中,若出现中断、且经过计算机设备判定中断处的调度函数为系统的调度指令,则计算机设备将原本执行至系统的调度指令的流程,转向预先设计好的跳转线程(简称hook)处,并获取hook的执行结果继续执行pe文件,直至加载至unicorn内存空间中的pe文件执行完成。170.例如,中断的指令是一个函数跳转指令"calleax"。通过调试控制台调试发现,此处中断的指令为:ffd0,对应汇编指令是calleax,而此处eax的值为badf8,这个值其实对应了iat表中的localalloc函数,此处对应的链接的dll(dynamiclinklibrary,动态链接库)名为“kernel32.dll”如图6所示。171.其中,dll是一个包含可由多个程序,同时使用的代码和数据的库。在windows系统中,这种文件被称为应用程序拓展。例如,在windows操作系统中,comdlg32.dll执行与对话框有关的常见函数。因此,每个程序都可以使用该dll中包含的功能来实现“打开”对话框。这有助于避免代码重用和促进内存的有效使用。172.此处就是中断在localalloc函数处。由于执行环境并非windows系统环境,而是模拟执行引擎unicorn,因此iat表中对应的函数地址是不存在的,更不可能执行成功。即使同样把kernel32.dll、ntdll.dll等重要系统dll数据加载进unicorn中,并修复了导入地址表(即iat表),也还是会失败的,因为其关联了太多dll数据、且没有windows底层的实现。173.这里设计hook_code回调函数,用伪代码表示如下:[0174][0175](四)脱壳流程结束。[0176]一般来说,文件加壳的目的都是为了隐藏程序真正的oep(originalentrypoint,程序的入口点),以防止被破解。因此,在通过上述文件脱壳方法,如果查找到了pe文件的oep,则计算机设备控制unicorn停止执行,并“转存”映射至unicorn中的内存映射文件(简称“dump文件”),即可得到所需的目标文件。[0177]但是,由于每个壳条件可能都不一样,确认壳解压或者解密完成的标准也不同。举例来说,加了vmp类型壳的加壳文件,其.text、.data、.rdata等区段数据是空的,只要解压完成,这些区段数据将恢复,而不再是空。对于vmp3.x类型壳的加壳文件,解压完成时一般最后调度的api(applicationprogramminginterface,应用程序接口)是localfree函数,只需要监控localfree函数,检测数据区段不为空即可认为解压完成。然后,把模拟执行出来的内存映像文件拷贝出来,并作简单的pe文件还原,即可以认为是完成了“脱壳”过程。[0178]此外,为了验证本技术实施例提供的文件脱壳方案带来的效果,还对本技术实施例提供的方案进行了实验测试,具体如下:[0179]在这里,以开源的跨平台模拟执行引擎unicorn作为预设的模拟执行引擎。[0180]其中,测试程序文件的部分内容如下:[0181][0182]该测试程序文件编译出来的程序,明文字串(如“helloworld!”等)很容易在区段标识为.rdata的区段中找到,如图7所示。[0183]编译完成后,对该测试程序文件加上了vmp3.09类型的壳。[0184]通过观察发现,加壳后的测试程序文件比原始的测试程序文件膨胀了不少,如图8所示,其中,大小为12kb对应的程序文件为原始的测试程序文件,大小为957kb对应的程序文件为加壳后的测试程序文件。[0185]通过pe文件工具观察加壳后的测试程序文件发现,文件重要的区段(如“.text”区段、“.rdata”区段、“.data”区段、“.pdata”区段、“.vmp0”区段)都被抹掉了,如图9所示;因此若需要提取文件的样本特征,这将是个不小的障碍。[0186]接下来,利用提前写好的unicorn脱壳工具进行脱壳(即采用unicorn执行加壳后的测试程序文件,并“转存”,“转存”出来的文件这里称为“dump文件”)。[0187]然后,对“dump文件”进行修复,其中,“dump文件”如图10所示。并重新提取“dump文件”中的字符串,可以得到如图11所示的明文字串(如“helloworld!”、“vmpdecrypt”等)。[0188]由此可见,基于模拟执行的跨平台脱壳方法是可行的,只要对主要的系统api进行伪造,就可以作出一个针对多种壳的通用脱壳机。并且由于是基于模拟执行引擎来模拟执行的,加壳文件并没有真正执行起来,因此可以保证免受非法加壳文件侵害,提高了安全性。[0189]为了更好实施本技术实施例中文件脱壳方法,在文件脱壳方法基础之上,本技术实施例中还提供一种文件脱壳装置,该文件脱壳装置可以集成在计算机设备,比如服务器或终端等设备中。[0190]例如,如图12所示,为本技术实施例中文件脱壳装置的一个实施例结构示意图,该文件脱壳装置可以包括第一获取单元1201、加载单元1202、执行单元1203、第二获取单元1204等,如下:[0191]第一获取单元1201,用于获取第一文件格式的第一加壳文件;[0192]加载单元1202,用于将所述第一加壳文件加载至预设的模拟执行引擎的内存空间中,得到所述第一加壳文件的第一模拟执行文件;[0193]执行单元1203,用于通过所述模拟执行引擎执行所述第一模拟执行文件,得到所述第一模拟执行文件的第一内存映射文件;[0194]第二获取单元1204,用于获取所述第一内存映射文件,并将所述第一内存映射文件作为所述第一加壳文件的第一目标文件,所述第一目标文件是指所述第一加壳文件脱壳后的文件。[0195]在本技术的一些实施例中,所述执行单元1203具体还用于:[0196]通过所述模拟执行引擎执行所述第一模拟执行文件;[0197]当所述第一模拟执行文件执行中断时,获取所述第一模拟执行文件执行中断处的当前执行指令;[0198]将所述当前执行指令输入至预设的跳转线程,以使得所述跳转线程输出所述当前执行指令的执行结果;[0199]通过所述模拟执行引擎,根据所述执行结果继续执行所述第一模拟执行文件,直至所述第一模拟执行文件执行完成,得到所述第一模拟执行文件的第一内存映射文件。[0200]在本技术的一些实施例中,在所述将所述当前执行指令输入至预设的跳转线程,以使得所述跳转线程输出所述当前执行指令的执行结果的步骤之前,所述执行单元1203具体还用于:[0201]检测所述当前执行指令的指令类型,其中,所述指令类型包括系统的调度指令;[0202]在本技术的一些实施例中,所述执行单元1203具体还用于:[0203]若所述当前执行指令的指令类型为系统的调度指令,则将所述当前执行指令输入至预设的跳转线程,以使得所述跳转线程输出所述当前执行指令的执行结果。[0204]在本技术的一些实施例中,所述执行单元1203具体还用于:[0205]若检测到所述当前执行指令为目标函数,则确定所述当前执行指令为系统的调度指令,其中,所述目标函数是指所述第一加壳文件的导入地址表中对应的函数。[0206]在本技术的一些实施例中,所述加载单元1202具体还用于:[0207]对所述第一加壳文件进行解析;[0208]将解析后的所述第一加壳文件映射至预设的模拟执行引擎的内存空间中,得到所述第一加壳文件的初步执行文件;[0209]修复所述初步执行文件的待修复文件,得到所述第一加壳文件的第一模拟执行文件,其中,所述待修复文件包括所述第一加壳文件的导入地址表。[0210]在本技术的一些实施例中,所述文件脱壳装置还包括识别单元(图中未示出),所述识别单元具体用于:[0211]获取样本文件,并获取所述样本文件的可执行区段的熵值总和;[0212]当所述熵值总和大于预设阈值,且所述样本文件中存在目标区段时,将所述样本文件确定为第一加壳文件,其中,所述目标区段是指在所述样本文件中目标标识所对应标识的区段,所述目标标识是指与预设的区段标识不相同的区段标识。[0213]在本技术的一些实施例中,所述样本文件包括游戏外挂程序文件,所述识别单元具体还用于:[0214]获取游戏外挂程序文件作为样本文件;[0215]获取所述游戏外挂程序文件的可执行区段的熵值总和,作为所述样本文件的可执行区段的熵值总和。[0216]在本技术的一些实施例中,所述文件脱壳装置还包括提取单元(图中未示出),所述提取单元具体用于:[0217]根据所述第一目标文件进行样本特征提取,得到所述第一加壳文件的样本特征。[0218]在本技术的一些实施例中,所述第一获取单元1201具体还用于:[0219]获取第二文件格式的第二加壳文件,所述第一文件格式和所述第二文件格式是不同类型的文件格式。[0220]在本技术的一些实施例中,所述加载单元1202具体还用于:[0221]将所述第二加壳文件加载至所述模拟执行引擎的内存空间中,得到所述第二加壳文件的第二模拟执行文件;[0222]在本技术的一些实施例中,所述执行单元1203具体还用于:[0223]通过所述模拟执行引擎执行所述第二模拟执行文件,得到所述第二模拟执行文件的第二内存映射文件;[0224]在本技术的一些实施例中,所述第二获取单元1204具体还用于:[0225]获取所述第二内存映射文件,并将所述第二内存映射文件作为所述第二加壳文件的第二目标文件,其中,所述第二目标文件是指所述第二加壳文件脱壳后的文件。[0226]具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。[0227]由于该文件脱壳装置可以执行本技术如图1至图11对应任意实施例中文件脱壳方法中的步骤,因此,可以实现本技术如图1至图11对应任意实施例中文件脱壳方法所能实现的有益效果,详见前面的说明,在此不再赘述。[0228]此外,为了更好实施本技术实施例中文件脱壳方法,在文件脱壳方法基础之上,本技术实施例还提供一种计算机设备,如图13所示,其示出了本技术实施例所涉及的计算机设备的结构示意图,具体来讲:[0229]该计算机设备可以包括一个或者一个以上处理核心的处理器1301、一个或一个以上计算机可读存储介质的存储器1302、电源1303和输入单元1304等部件。本领域技术人员可以理解,图13中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:[0230]处理器1301是该计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器1302内的软件程序和/或模块,以及调用存储在存储器1302内的数据,执行计算机设备的各种功能和处理数据,从而对计算机设备进行整体监控。可选的,处理器1301可包括一个或多个处理核心;优选的,处理器1301可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1301中。[0231]存储器1302可用于存储软件程序以及模块,处理器1301通过运行存储在存储器1302的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器1302可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、影像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器1302可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器1302还可以包括存储器控制器,以提供处理器1301对存储器1302的访问。[0232]计算机设备还包括给各个部件供电的电源1303,优选的,电源1303可以通过电源管理系统与处理器1301逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源1303还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。[0233]该计算机设备还可包括输入单元1304,该输入单元1304可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。[0234]尽管未示出,计算机设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,计算机设备中的处理器1301会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器1302中,并由处理器1301来运行存储在存储器1302中的应用程序,从而实现各种功能,如下:[0235]获取第一文件格式的第一加壳文件;将所述第一加壳文件加载至预设的模拟执行引擎的内存空间中,得到所述第一加壳文件的第一模拟执行文件;通过所述模拟执行引擎执行所述第一模拟执行文件,得到所述第一模拟执行文件的第一内存映射文件,其中,所述模拟执行引擎可执行多个平台的文件格式的文件;获取所述第一内存映射文件,并将所述第一内存映射文件作为所述第一加壳文件的第一目标文件,其中,所述第一目标文件是指所述第一加壳文件脱壳后的文件。[0236]以上各个操作具体可参见前面的实施例,在此不作赘述。[0237]由于该计算机设备可以执行本技术如图1至图11对应任意实施例中文件脱壳方法中的步骤,因此,可以实现本技术如图1至图11对应任意实施例中文件脱壳方法所能实现的有益效果,详见前面的说明,在此不再赘述。[0238]本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。[0239]为此,本技术实施例提供一种计算机可读存储介质,其中存储有计算机程序,该计算机程序能够被处理器进行加载,以执行本技术实施例所提供的任一种物体检测方法中的步骤。例如,该计算机程序可以执行如下步骤:[0240]获取第一文件格式的第一加壳文件;将所述第一加壳文件加载至预设的模拟执行引擎的内存空间中,得到所述第一加壳文件的第一模拟执行文件;通过所述模拟执行引擎执行所述第一模拟执行文件,得到所述第一模拟执行文件的第一内存映射文件,其中,所述模拟执行引擎可执行多个平台的文件格式的文件;获取所述第一内存映射文件,并将所述第一内存映射文件作为所述第一加壳文件的第一目标文件,其中,所述第一目标文件是指所述第一加壳文件脱壳后的文件。[0241]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的文件脱壳装置、设备及其相应单元的具体工作过程,可以参考如图1至图11对应任意实施例中文件脱壳方法的说明,具体在此不再赘述。[0242]其中,该计算机可读存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取记忆体(ram,randomaccessmemory)、磁盘或光盘等。[0243]由于该计算机可读存储介质中所存储的指令,可以执行本技术如图1至图11对应任意实施例中文件脱壳方法中的步骤,因此,可以实现本技术如图1至图11对应任意实施例中文件脱壳方法所能实现的有益效果,详见前面的说明,在此不再赘述。[0244]以上对本技术实施例所提供的一种文件脱壳方法及装置进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献