发明内容
本申请提供一种无害执行PE文件的方法、装置、电子设备及存储介质,对病毒文件的执行可以在任一服务器上进行,以便在任一服务器上验证杀毒软件对执行状态下的病毒文件的检测能力,避免了需要单独部署测试系统,减少了系统资源的浪费。
第一方面,本申请提供一种无害执行PE文件的方法,包括:解析指定文件,获取所述指定文件的目标属性,并根据所述目标属性修改所述指定文件的文件结构,以使所述指定文件的程序执行入口地址指向设定节的内存地址,向所述设定节内写入无害代码,关闭所述指定文件相关的保护项,得到待执行文件,执行所述待执行文件。
通过采用上述技术方案,首先预先解析指定文件,获取指定文件的目标属性,以将指定文件的程序执行入口指向无害的代码地址,使得指定文件执行时,执行的代码为无害代码,可以在不对系统产生损害时执行该指定文件,以无害的验证方式验证杀毒软件对执行状态下的病毒文件的检测能力,避免了需要单独部署测试系统,减少了系统资源的浪费。
可选的,判断待测文件是否为PE文件,若确定所述待测文件是PE文件,则确定所述待测文件为所述指定文件。
通过采用上述技术方案,可以判断病毒文件类型是否为PE文件,若是则继续后续方法,若否则结束方法执行,提高了无害执行病毒文件的效率。
可选的,所述目标属性包括:在硬盘中的起始基地址、最后一个节的节大小、在硬盘中的最后一个节的文件偏移、在内存中的起始基地址、在内存中最后一个节的文件偏移,在硬盘中首节表的起始地址、节的个数;
所述根据所述目标属性修改所述指定文件的文件结构,包括:
根据所述在硬盘中的起始基地址、所述最后一个节的节大小、所述在硬盘中的最后一个节的文件偏移,确定在硬盘中所述指定文件最后一个节的末尾地址;
以所述末尾地址为首地址,为所述指定文件新增一个节,作为设定节;
根据所述在硬盘中首节表的起始地址和所述节的个数,确定最后一个节表的末尾偏移,再根据所述最后一个节表的末尾偏移加所述在硬盘中的起始基地址,确定最后一个节表的末尾地址,以所述最后一个节表的末尾地址为首地址新建一个节表;
根据所述在内存中的起始基地址、所述最后一个节的节大小、所述在内存中的最后一个节的文件偏移、内存节对齐颗粒度、所述设定节的节大小,确定所述设定节的内存地址;
向所述节表中写入所述设定节的属性;
修改所述指定文件的程序执行入口的文件偏移,以使程序执行入口地址指向所述设定节的内存地址。
通过采用上述技术方案,可以为无害化代码写入指定文件提供前提条件。
可选的,所述关闭所述指定文件相关的保护项,包括:关闭系统对于所述指定文件的地址空间配置随机加载ASLR,关闭系统对于所述指定文件的数据执行保护DEP,重置所述指定文件的重定位表,去除所述指定文件的数字签名。
通过采用上述技术方案,可以关闭系统对指定文件的相关保护程序,确保在实际运行的时候,PE文件在内存中的运行地址不会被改变,指定文件能顺利运行无害代码。
可选的,还包括:在所述指定文件头部标记无害化处理标记;所述若确定所述待测文件是PE文件,则确定所述待测文件为所述指定文件,包括:若确定所述待测文件是PE文件,则判断所述待测文件是否含有无害化处理标记,若确定所述待测文件是PE文件且不含有无害化处理标记,则确定所述待测文件为所述指定文件。
通过采用上述技术方案,可以对指定文件进行无害化标记,该标记用于在待测文件无害执行前解析是否进行无害执行过,若是被无害执行过的待测文件则不会进行后续步骤,避免了指定文件被重复执行的情况,提高了无害执行PE文件的效率。
可选的,输出回执信息,所述回执信息包括所述待执行文件的文件名、执行时刻,所述回执信息用于结合待测杀毒软件对所述待执行文件的检测结果,验证所述待测杀毒软件对病毒文件的检测能力。
通过采用上述技术方案,可以在无害执行指定文件时得到一条回执信息,该信息包括指定文件的文件名、当前执行时间等信息,以便杀毒软件查询所述信息以验证杀毒软件的检测能力。
可选的,所述无害代码执行完毕后,结束所述待执行文件的执行进程。
通过采用上述技术方案,可以只运行无害的代码,而不执行原病毒文件中的病毒代码,避免了执行病毒代码而可能对系统造成的危害。
第二方面,本申请提供一种无害执行PE文件的装置,包括:
文件解析模块,用于解析指定文件,获取所述指定文件的目标属性,所述指定文件为PE文件;
文件修改模块,用于根据所述目标属性修改所述指定文件的文件结构,以使所述指定文件的程序执行入口地址指向设定节的内存地址;
代码写入模块,用于向所述设定节内写入无害代码;
关闭安全项模块,用于关闭所述指定文件相关的保护项,得到待执行文件;
代码执行模块,用于执行待执行文件。
可选的,无害执行PE文件装置还包括:文件判断模块,用于:
判断所述待测文件是否为PE文件;
若确定所述待测文件是PE文件,则确定所述待测文件为所述指定文件。
可选的,所述目标属性包括:在硬盘中的起始基地址、最后一个节的节大小、在硬盘中的最后一个节的文件偏移、在内存中的起始基地址、在内存中最后一个节的文件偏移、在硬盘中首节表的起始地址、节的个数;
所述文件修改模块在根据目标属性修改所述指定文件的文件结构时,具体用于:
根据所述在硬盘中的起始基地址、所述最后一个节的节大小、所述在硬盘中的最后一个节的文件偏移,确定在硬盘中所述指定文件最后一个节的末尾地址;
以所述末尾地址为首地址,为所述指定文件新增一个节,作为设定节;
根据所述在硬盘中首节表的起始地址和所述节的个数,确定最后一个节表的末尾偏移,再根据所述最后一个节表的末尾偏移加所述在硬盘中的起始基地址,确定最后一个节表的末尾地址,以所述最后一个节表的末尾地址为首地址新建一个节表;
根据所述在内存中的起始基地址、所述最后一个节的节大小、所述在内存中的最后一个节的文件偏移、内存节对齐颗粒度、所述设定节的节大小,确定所述设定节的内存地址;
向所述节表中写入所述设定节的属性;
修改所述指定文件的程序执行入口的文件偏移,以使程序执行入口地址指向所述设定节的内存地址。
可选的,关闭安全项模块关闭所述指定文件相关的保护项时,具体用于:
关闭系统对于所述指定文件的地址空间配置随机加载ASLR;
关闭系统对于所述指定文件的数据执行保护DEP;
重置所述指定文件的重定位表;
去除所述指定文件的数字签名。
可选的,无害执行PE文件装置还包括:文件标记模块,用于:
在所述指定文件头部标记无害化处理标记;
所述文件判断模块确定所述待测文件是PE文件,则确定所述待测文件为所述指定文件,包括:若确定所述待测文件是PE文件,则判断所述待测文件是否含有无害化处理标记;
若确定所述待测文件是PE文件且不含有无害化处理标记,则确定所述待测文件为所述指定文件。
可选的,无害执行PE文件装置还包括:输出回执模块,用于:
输出回执信息。所述回执信息包括所述待执行文件的文件名、执行时刻;所述回执信息用于结合待测杀毒软件对所述待执行文件的检测结果,验证所述待测杀毒软件对病毒文件的检测能力。
可选的,代码执行模块,执行待执行文件时,还用于所述无害代码执行完毕后,结束所述待执行文件的执行进程。
第三方面,本申请提供一种电子设备,包括:存储器和处理器,所述存储器上存储有能够被处理器加载并执行第一方面的方法的计算机程序。
第四方面,本申请提供一种计算机可读存储介质,存储有能够被处理器加载并执行第一方面的方法的计算机程序。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
下面结合说明书附图对本申请实施例作进一步详细描述。
随着目前病毒文件种类越来越多,这对杀毒软件检测病毒文件的能力要求也越来越高,而杀毒软件检测病毒文件的能力分为两种。其一,为杀毒软件对执行状态下的病毒文件的检测能力,另一,为杀毒软件对非执行状态下的病毒文件的检测能力。
由于执行状态下的病毒文件会对系统造成不可估计的影响,所以设立测试服务器单独执行病毒文件,以此验证杀毒软件对执行状态下的病毒文件检测能力,但这种验证方式过于浪费系统资源。
基于此,本申请欲提出一种无害执行PE文件的方法、装置、电子设备及存储介质,通过本方法实现在任一服务器上无害执行病毒文件,将上述无害执行的病毒文件作为检测样本,以供杀毒软件检测使用。
图1为本申请一实施例提供的一种无害执行PE文件的流程图。本实施例的执行主体可以为服务器等终端设备。如图1所示,本实施例的方法可以包括:
S101、解析指定文件,获取指定文件的目标属性,其中指定文件为PE文件。
在本申请中“指定文件”指的是要需要被无害执行的病毒文件,且病毒文件的文件类型为PE文件类型。
具体的,解析表征了对指定文件的结构、属性的获取,目标属性则表征为本申请后续步骤中可能用到的所有属性。
S102、根据目标属性修改指定文件的文件结构,以使指定文件的程序执行入口地址指向设定节的内存地址。
具体的,其中指定文件的文件结构的组成部分包括:DOS头、NT头、节表、节。
DOS头是一个结构体,用于兼容操作系统,DOS头中具有很多成员属性,每个成员属性记录相应的信息。NT头包括:PE签名、PE文件头、PE可选头,其中PE签名用于标识本文件为PE类型文件,PE文件头定义了PE文件的基本信息和属性,这些属性为PE加载器加载PE文件时的必要属性,PE可选头中定义了PE文件的扩展属性,扩展属性包括PE程序执行入口的文件偏移。
节表是一个数组结构的结构体,用于描述PE文件后续节的相关信息,一个节表对应一个节,如果PE文件中有N个节,节表就含有N个,每个节表中储存了对应节的属性、节磁盘位置、节内存位置的相关信息。节用于存储数据或程序。
其中,设定节既可以是为指定文件新增的节、也可以是指定文件中有空余节空间的节,该空余节空间需要大于无害代码所需空间。
在本实施例中,通过获取到的目标属性修改指定文件的文件结构,将其中程序执行入口的文件偏移修改为设定节的文件偏移,以使PE文件执行时首先执行设定节中的代码。
S103、向设定节内写入无害代码。
在本实施例中,无害代码表征为运行时无害于本系统的代码,无害于本系统包括不影响系统的运行速度、不操作系统原有软件、磁盘内的数据。
S104、关闭指定文件相关的保护项,得到待执行文件。
在本实施例中,指定文件相关的保护项为系统关于指定文件的保护程序和指定文件自带的保护功能,关闭保护项用于保证指定文件成功执行设定节中的无害代码。
S105、执行待执行文件。
具体的,PE加载器为待执行文件在内存中分配空间,而后PE加载器检查待执行文件中NT头,获取待执行文件的程序执行入口地址,即设定节的内存地址,执行设定节中的无害代码。
在本实施例运用本方案,通过预先解析指定文件,获取指定文件的目标属性,以将指定文件的程序执行入口指向无害的代码地址,使得指定文件执行时执行无害代码,可以在不对系统产生损害时执行该指定文件。通过提供无害执行病毒文件的方式,为杀毒软件对执行状态的病毒文件的检测提供了便利,在对杀毒软件此项能力的验证场景下,无需另外部署测试服务器,节省了更多系统资源。
本申请实施例的一种可能的实现方式,在步骤S101中,解析指定文件,获取指定文件的目标属性,其中指定文件为PE文件,之前包括:判断待测文件是否为PE文件,若确定所述待测文件是PE文件,则确定所述待测文件为所述指定文件。
其中,待测文件为杀毒软件需要检测的病毒文件。
在一些具体的实现方式中,具体的判断过程如下。查看病毒文件的文件头最开始的两个字节是不是4D5A,若最开始的两个字节是4D5A,则确定病毒文件的DOS头为有效DOS头。接着找到DOS头的最后4字节数据,该数据表示病毒文件的NT头的开始地址,根据该地址找到NT头,查看NT头最开始的四个字节是不是为00004550,若是,则确定NT头的PE签名有效。当判断病毒文件的PE签名有效时,则确定病毒文件为PE文件,即确定该病毒文件为指定文件。
通过本方案,可以判断病毒文件类型是否为PE文件,若是则继续后续方法,若否则结束方法执行,提高了无害执行病毒文件的效率。
本申请实施例一种可能的实现方式,上述目标属性包括:在硬盘中的起始基地址、最后一个节的节大小、在硬盘中的最后一个节的文件偏移、在内存中的起始基地址、在内存中最后一个节的文件偏移、在硬盘中首节表的起始地址、节的个数。
其中,上述目标属性的获取过程可以为调用Windows系统的API获取,该API可以直接解析一个PE文件,并读取该文件各结构中的属性,例如,获取指定文件在内存中的起始基地址时,可以调用API :Parsed_PE.inh32.OptionalHeader.ImageBase。
写入代码为:auto ImageBase = Parsed_PE.inh32.OptionalHeader.ImageBase,ImageBase的值则为指定文件在内存中的起始基地址,同理,其他目标属性也可以通过调用该属性对应的API获取到。
相对应的,上述的根据所述目标属性修改所述指定文件的文件结构,包括:根据所述在硬盘中的起始基地址、所述最后一个节的节大小、所述在硬盘中的最后一个节的文件偏移,确定在硬盘中所述指定文件最后一个节的末尾地址;以所述末尾地址为首地址,为所述指定文件新增一个节,作为设定节;根据所述在硬盘中首节表的起始地址和所述节的个数,确定最后一个节表的末尾偏移,再根据所述最后一个节表的末尾偏移加所述在硬盘中的起始地址,得到指定文件最后一个节表的末尾地址,以末尾地址为首地址新建一个节表;向节表中写入对应设定节的节名、实际字节数、在内存中的开始文件偏移、在硬盘中的开始文件偏移;根据所述在内存中的起始基地址、所述最后一个节的节大小、所述在内存中的最后一个节的文件偏移、内存节对齐颗粒度、所述设定节的节大小,确定所述设定节的内存地址,修改所述指定文件的程序执行入口的文件偏移,以使程序执行入口地址指向所述设定节的内存地址。
根据在硬盘中的起始基地址、最后一个节的节大小、在硬盘中的最后一个节的文件偏移属性,确定在硬盘中指定文件最后一个节的末尾地址,其中将最后一个节的节大小、在硬盘中的最后一个节的文件偏移相加,可以得到在硬盘中的最后一个节的节末尾文件偏移,再将硬盘中的起始基地址与硬盘中的最后一个节的节末尾文件偏移相加,可以得到硬盘中指定文件最后一个节的末尾地址。同理获得到内存中指定文件最后一个节的末尾地址。
根据在硬盘中首节表的起始地址、节的个数,确定在硬盘中指定文件最后一个节表的末尾偏移,其中由于PE文件的每个节表占用字节数是固定大小,且PE文件中节表个数与节个数相等,所以将在硬盘中首节表的起始地址和节个数与节表大小的乘积相加,可以得到在硬盘中指定文件最后一个节表的末尾偏移。
以硬盘中指定文件最后一个节的末尾地址为首地址,并以首地址为开始地址新增一个新节,并确认该节为设定节。
在硬盘中指定文件最后一个节表的末尾偏移加指定文件在硬盘中的起始地址,得到指定文件最后一个节表的末尾地址,以末尾地址为首地址新建一个节表,并在节表中写入对应新增节的节名、实际字节数、在内存中的开始文件偏移、在硬盘中的开始文件偏移。
根据内存节对齐颗粒度和指定文件最后一个节的节大小,获取到在内存中指定文件最后一个节的节大小,再根据上述方法获取设定节的内存地址。
修改指定文件的程序执行入口偏移,使程序执行入口偏移加内存中指定文件的基地址为设定节的内存地址,达到执行指定文件时先运行设定节中的代码的效果。
通过本方案,可以为无害化代码写入指定文件提供前提条件。
本申请实施例一种可能的实现方式,上述的关闭所述指定文件相关的保护项,包括:关闭系统对于所述指定文件的地址空间配置随机加载(Address space layoutrandomization,ASLR),关闭系统对于所述指定文件的数据执行保护(Data ExecutionPrevention,DEP),重置所述指定文件的重定位表,去除所述指定文件的数字签名。
其中,关闭系统对于所述指定文件的地址空间配置随机加载ASLR,用于保证指定文件映射到内存时的起始基地址不随机变化,关闭系统对于指定文件的数据执行保护DEP,用于保证指定文件可以在受保护的内存区域运行无害代码,重置指定文件的重定位表,以使重定位表重新记录所述指定文件映射到内存时起始基地址的需要偏移修正的地址;去除指定文件的数字签名,以使杀毒软件避免将数字签名被修改作为判断指定文件为病毒文件的因素。
通过本方案,可以关闭系统对指定文件的相关保护项,确保在实际运行的时候,PE文件在内存中的运行地址不会被改变,指定文件能顺利运行无害代码。
本申请实施例一种可能的实现方式,在所述指定文件头部标记无害化处理标记,所述若确定所述待测文件是PE文件,则确定所述待测文件为所述指定文件,包括:若确定所述待测文件是PE文件,则判断所述待测文件是否含有无害化处理标记,若确定所述待测文件是PE文件且不含有无害化处理标记,则确定所述待测文件为所述指定文件。
其中,在指定文件的PE可选头中标记无害化处理标记,该步骤可以在步骤S103中,向设定节内写入无害代码前。无害化处理标记可以为固定值、校验规则数列,所有被无害化处理的病毒文件具有同一种标记内容,以使在上述实施例中,对待测文件解析时,查看到该固定值或校验规则数列,能准确识别到该待测文件具有无害化处理标记。
本申请实施例另一种可能的实现方式中,在指定文件的PE可选头中标记无害化处理标记,此步骤还可以在向设定节内写入无害代码后,或者在步骤S101、步骤S102、步骤S104、步骤S105,任一步骤的前、中、后进行,本文不一一介绍。
相对应的,上述的若确定所述待测文件是PE文件,则确定所述待测文件为所述指定文件,包括:确定待测文件是PE文件后,判断待测文件PE可选头中是否含有无害化处理标记,若确定待测文件是PE文件且不含有无害化处理标记,则确定该待测文件为指定文件。
通过本方案,可以对指定文件进行无害化标记,该标记用于在待测文件无害执行前解析是否进行无害执行过,若是被无害执行过的待测文件则不会进行后续步骤,避免了指定文件被重复执行的情况,提高了无害执行PE文件的效率。
本申请实施例一种可能的实现方式,在步骤S105中,执行待执行文件时,输出回执信息,回执信息包括待执行文件名、执行时刻;回执信息用于结合待测杀毒软件对待执行文件的检测结果,验证待测杀毒软件对病毒文件的检测能力。
具体的,在执行待执行文件时,输出的回执信息以二进制文件进行存储,回执信息可以由待执行文件中的无害代码运行时输出,或本申请的方法无害执行待执行文件时本申请的方法输出,该回执信息包括待执行文件名、执行时刻。其中,执行文件名为被无害执行的指定文件的文件名,执行时刻为无害执行指定文件时的开始时间,所以每个病毒文件执行时输出的回执信息具有唯一性。
在一些场景中,运用本方法无害执行N个病毒文件前,开启杀毒软件进行病毒文件的检测。杀毒软件完成检测后,会对应生成一个检测结果。从该检测结果中可以了解到检测到的病毒文件对应的文件名和文件执行时刻。将回执信息中的执行文件名、执行时刻与杀毒软件的检测结果中检测到的病毒文件对应的文件名和文件执行时刻进行对比,可以确定运用本方法无害执行的病毒文件被杀毒软件检测到的数量。根据杀毒软件检测到的数量和病毒文件的无害执行数量,可以验证杀毒软件对执行状态下的病毒软件的检测能力。
通过本方案,可以在无害执行指定文件后得到一条回执信息,该信息包括指定文件的文件名、开始执行时间,以便结合回执信息和待测杀毒软件的检测结果以验证杀毒软件的检测能力。
本申请实施例一种可能的实现方式,在步骤S105后,所述无害代码执行完毕后,结束所述待执行文件的执行进程。
具体的,待执行PE文件中可能含有多个节,每个节都可能含有可以运行的代码,正常PE文件执行过程中会按照设定顺序执行每个节中的代码,而在待执行文件在执行过程会执行无害代码,而无害代码执行结束后,会直接结束待执行文件的执行进程,不再执行待执行文件中后续可能执行的代码。
通过本方案,可以只运行无害的代码,而不执行原病毒文件中的原代码,避免了执行病毒代码而可能对系统造成的危害。
在另一种实施例中,无害化处理的基本方法,包括:
判断目标文件开始的两个字节是否为“MZ”;判断PE文件标记“PE”;
若满足PE文件格式,则解析PE文件,包括:
计算映像基址ImageBase;计算程序入口点的偏移offsetEP;将映像基址、程序入口点的偏移加起来,计算出AddressOfEntryPoint(即程序入口点指向的位置,恶意样本的入口)
注入无害化处理代码,修改程序执行入口,具体包括:得到各个节的起始位置:使用PE的起始地址索引;得到目前最后节表的末尾偏移(紧接其后用于写入一个新的节):
节表起始位置+节的个数×(每个节表占用的字节数28H)=目前最后节表的末尾偏移。
开始写入新的映像节头,包括:写入节名(8字节);写入节的实际字节数(4字节);
写入新节在内存中的开始偏移地址(4字节),同时可以计算出无害化入口位置:上节在内存中的开始偏移地址+(上节大小/节对齐+1)×节对齐
写入新节(即无害化代码)在文件中对齐后的大小;写入新节在文件中的开始位置:
上节在文件中的开始位置+上节对齐后的大小;
修改映像文件头中的节表数目;
写入无害化处理标记(可以放在PE头中);
修改AddressOfEntryPoint(即程序入口点,将指向无害化代码的位置);更新SizeOfImage(内存中整个PE映像尺寸=原SizeOfImage+无害化代码节经过内存节对齐后的大小);写入无害代码到新节指向的文件偏移中。
关闭文件自带的保护措施,包括:关闭ASLR(地址空间随机化);重置数据目录重定位表;关闭DEP(数据执行保护技术);去除软件自带的数字签名。
将无害样本输出,保存到二进制文件中。
图2为本申请一实施例提供的一种无害执行PE文件装置的结构示意图,如图2所示的,本实施例的无害执行PE文件装置200包括:
文件解析模块2001,用于解析指定文件,获取所述指定文件的目标属性,所述指定文件为PE文件;
文件修改模块2002,用于根据上述目标属性修改所述指定文件的文件结构,以使上述指定文件的程序执行入口地址指向设定节的内存地址;
代码写入模块2003,用于向上述设定节内写入无害代码;
关闭安全项模块2004,用于关闭所述指定文件相关的保护项,得到待执行文件;
代码执行模块2005,用于执行待执行文件。
本申请实施例一种可能的实现方式,无害执行PE文件装置200还包括:文件判断模块2006,用于:
判断待测文件是否为PE文件,若确定所述待测文件是PE文件,则确定所述待测文件为所述指定文件。
本申请实施例一种可能的实现方式,目标属性包括:在硬盘中的起始基地址、最后一个节的节大小、在硬盘中的最后一个节的文件偏移、在内存中的起始基地址、在内存中最后一个节的文件偏移、在硬盘中首节表的起始地址、节的个数;
上述文件修改模块2002在根据目标属性修改所述指定文件的文件结构时,具体用于:根据上述在硬盘中的起始基地址、上述最后一个节的节大小、上述在硬盘中的最后一个节的文件偏移,确定在硬盘中上述指定文件最后一个节的末尾地址;
以所述末尾地址为首地址,为所述指定文件新增一个节,作为设定节;
根据上述在硬盘中首节表的起始地址和所述节的个数,确定最后一个节表的末尾偏移,再根据上述最后一个节表的末尾偏移加上述在硬盘中的起始基地址,确定最后一个节表的末尾地址,以上述最后一个节表的末尾地址为首地址新建一个节表
根据上述在内存中的起始基地址、上述最后一个节的节大小、上述在内存中的最后一个节的文件偏移、内存节对齐颗粒度、上述设定节的节大小,确定上述设定节的内存地址;
向所述节表中写入所述设定节的属性;
修改上述指定文件的程序执行入口的文件偏移,以使程序执行入口地址指向上述设定节的内存地址。
本申请实施例一种可能的实现方式,关闭安全项模块2004关闭上述指定文件相关的保护项时,具体用于:
关闭系统对于所述指定文件的地址空间配置随机加载ASLR;
关闭系统对于所述指定文件的数据执行保护DEP;
重置所述指定文件的重定位表;
去除所述指定文件的数字签名。
本申请实施例一种可能的实现方式,无害执行PE文件装置200还包括:文件标记模块2007,用于:
在上述指定文件头部标记无害化处理标记;
上述文件判断模块确定上述待测文件是PE文件,则确定上述待测文件为上述指定文件,包括:若确定上述待测文件是PE文件,则判断上述待测文件是否含有无害化处理标记;
若确定上述待测文件是PE文件且不含有无害化处理标记,则确定上述待测文件为所述指定文件。
本申请实施例一种可能的实现方式,无害执行PE文件装置200还包括:输出回执模块2008,用于:
输出回执信息。上述回执信息包括上述待执行文件的文件名、执行时刻;上述回执信息用于结合待测杀毒软件对上述待执行文件的检测结果,验证上述待测杀毒软件对病毒文件的检测能力。
本申请实施例一种可能的实现方式,代码执行模块2005,执行待执行文件时,还用于上述无害代码执行完毕后,结束所述待执行文件的执行进程。
本实施例的装置,可以用于执行上述任一实施例的方法,其实现原理和技术效果类似,此处不再赘述。
图3为本申请一实施例提供的一种电子设备的结构示意图,如图3所示,本实施例的电子设备300可以包括:存储器301和处理器302。
存储器301上存储有能够被处理器302加载并执行上述实施例中方法的计算机程序。
其中,处理器302和存储器301相连,如通过总线相连。
可选地,电子设备300还可以包括收发器。需要说明的是,实际应用中收发器不限于一个,该电子设备300的结构并不构成对本申请实施例的限定。
处理器302可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器302也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线可包括一通路,在上述组件之间传送信息。总线可以是PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器301可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器301用于存储执行本申请方案的应用程序代码,并由处理器302来控制执行。处理器302用于执行存储器301中存储的应用程序代码,以实现前述方法实施例所示的内容。
其中,电子设备包括但不限于:移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。还可以为服务器等。图3示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
本实施例的电子设备,可以用于执行上述任一实施例的方法,其实现原理和技术效果类似,此处不再赘述。
本申请还提供一种计算机可读存储介质,存储有能够被处理器加载并执行如上实施例中的方法的计算机程序。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。