CN109960932A - 文件检测方法、装置和终端设备 - Google Patents
文件检测方法、装置和终端设备 Download PDFInfo
- Publication number
- CN109960932A CN109960932A CN201711405934.3A CN201711405934A CN109960932A CN 109960932 A CN109960932 A CN 109960932A CN 201711405934 A CN201711405934 A CN 201711405934A CN 109960932 A CN109960932 A CN 109960932A
- Authority
- CN
- China
- Prior art keywords
- file
- detected
- temporary
- temporary file
- linking
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/565—Static detection by checking file integrity
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本申请提出一种文件检测方法、装置和终端设备,其中,上述文件检测方法包括:打开待检测文件,将待检测文件存储为临时文件;如果临时文件为可执行文件,则根据临时文件的头部信息,判断临时文件是否被预链接过;如果是,则对临时文件执行去预链接操作,对执行去预链接操作之后的临时文件进行哈希计算,获得待检测文件的文件标识码;将待检测文件的文件标识码和待检测文件发送给服务器,以便所述服务器将所述待检测文件的文件标识码与所述服务器中相同文件的文件标识码进行比对,确定所述待检测文件是否被病毒恶意修改。本申请可以提高文件是否被病毒恶意修改的检测准确率,降低可执行文件的误判概率,提高Linux操作系统的安全性。
Description
技术领域
本申请涉及信息安全技术领域,尤其涉及一种文件检测方法、装置和终端设备。
背景技术
随着网络科技的发展,互联网给人们的生活和工作带来了很大的便利,但是,由于互联网具有开放性这一特点,网络安全形式也变得日益严峻。网络攻击由最初的技术炫耀演变成了利益冲突。我国的政府、科研院所、个人企业等使用的操作系统正在向国产Linux发行版迁移,对Linux操作系统下的病毒进行防范变得日益重要。可执行与可链接格式(Executable and Linkable Format;以下简称:ELF)文件是Linux操作系统下的可执行文件,通过将二进制指令插入到ELF文件中,修改该文件的入口地址,可使ELF文件指向病毒代码,执行病毒代码。
但现有相关技术中提供的判断ELF文件是否被病毒恶意修改的技术方案,存在正常文件和恶意修改后的文件被误判的情形,因此现有相关技术检测ELF文件是否被病毒恶意修改的准确率较低。
发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本申请的第一个目的在于提出一种文件检测方法,以提高文件是否被病毒恶意修改的检测准确率,降低可执行文件的误判概率,提高Linux操作系统的安全性。
本申请的第二个目的在于提出一种文件检测装置。
本申请的第三个目的在于提出一种终端设备。
本申请的第四个目的在于提出一种非临时性计算机可读存储介质。
为达上述目的,本申请第一方面实施例提出一种文件检测方法,包括:打开待检测文件,将所述待检测文件存储为临时文件;如果所述临时文件为可执行文件,则根据所述临时文件的头部信息,判断所述临时文件是否被预链接过;如果是,则对所述临时文件执行去预链接操作,对执行去预链接操作之后的临时文件进行哈希计算,获得所述待检测文件的文件标识码;将所述待检测文件的文件标识码和所述待检测文件发送给服务器,以便所述服务器将所述待检测文件的文件标识码与所述服务器中相同文件的文件标识码进行比对,确定所述待检测文件是否被病毒恶意修改。
本申请实施例的文件检测方法中,打开待检测文件,将待检测文件存储为临时文件,如果上述临时文件为可执行文件,则根据上述临时文件的头部信息,判断上述临时文件是否被预链接过,如果是,则对上述临时文件执行去预链接操作,对执行去预链接操作之后的临时文件进行哈希计算,获得上述待检测文件的文件标识码,然后将上述待检测文件的文件标识码和上述待检测文件发送给服务器,以便服务器将上述待检测文件的文件标识码与服务器中相同文件的文件标识码进行比对,确定上述待检测文件是否被病毒恶意修改,从而可以提高文件是否被病毒恶意修改的检测准确率,降低可执行文件的误判概率,提高Linux操作系统的安全性。
为达上述目的,本申请第二方面实施例提出了一种文件检测装置,包括:打开模块,用于打开待检测文件;存储模块,用于将所述打开模块打开的待检测文件存储为临时文件;判断模块,用于当所述临时文件为可执行文件时,根据所述临时文件的头部信息,判断所述临时文件是否被预链接过;计算模块,用于当所述判断模块确定所述临时文件被预链接过时,对所述临时文件执行去预链接操作,对执行去预链接操作之后的临时文件进行哈希计算,获得所述待检测文件的文件标识码;发送模块,用于将所述计算模块获得的所述待检测文件的文件标识码和所述待检测文件发送给服务器,以便所述服务器将所述待检测文件的文件标识码与所述服务器中相同文件的文件标识码进行比对,确定所述待检测文件是否被病毒恶意修改。
本申请实施例的文件检测装置,打开模块打开待检测文件,存储模块将待检测文件存储为临时文件,如果上述临时文件为可执行文件,则判断模块根据上述临时文件的头部信息,判断上述临时文件是否被预链接过,如果是,则计算模块对上述临时文件执行去预链接操作,对执行去预链接操作之后的临时文件进行哈希计算,获得上述待检测文件的文件标识码,然后发送模块将上述待检测文件的文件标识码和上述待检测文件发送给服务器,以便服务器将上述待检测文件的文件标识码与服务器中相同文件的文件标识码进行比对,确定上述待检测文件是否被病毒恶意修改,从而可以提高文件是否被病毒恶意修改的检测准确率,降低可执行文件的误判概率,提高Linux操作系统的安全性。
为达上述目的,本申请第三方面实施例提出了一种终端设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上所述的方法。
为达上述目的,本申请第四方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请文件检测方法一个实施例的流程图;
图2为本申请文件检测方法另一个实施例的流程图;
图3为本申请文件检测方法再一个实施例的流程图;
图4为本申请文件检测方法再一个实施例的流程图;
图5为本申请文件检测方法再一个实施例的流程图;
图6为本申请文件检测装置一个实施例的结构示意图;
图7为本申请文件检测装置另一个实施例的结构示意图;
图8为本申请终端设备一个实施例的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
图1为本申请文件检测方法一个实施例的流程图,如图1所示,上述文件检测方法可以包括:
步骤101,打开待检测文件,将上述待检测文件存储为临时文件。
本实施例中,打开待检测文件之后,需要将上述待检测文件在内存中存储为临时文件。
具体地,可以根据待检测文件的文件路径,直接打开待检测文件,并将上述待检测文件在内存中存储为临时文件,因为检测过程中不能对原有的待检测文件进行修改,所以本实施例提供的文件检测方法需要在内存中进行,不能写入新的文件。
步骤102,如果上述临时文件为可执行文件,则根据上述临时文件的头部信息,判断上述临时文件是否被预链接(prelink)过。
如果上述临时文件被预链接过,则执行步骤103;如果否,即上述临时文件未被预链接过,则执行步骤104。
具体地,本实施例中,Linux操作系统中的可执行文件为ELF格式的文件,Windows操作系统中的可执行文件为exe格式的文件。
步骤103,对上述临时文件执行去预链接操作,对执行去预链接操作之后的临时文件进行哈希计算,获得上述待检测文件的文件标识码。然后,执行步骤105。
步骤104,对上述临时文件进行哈希计算,获得上述待检测文件的文件标识码。然后,执行步骤105。
本实施例中,当上述临时文件为可执行文件时,需要根据上述临时文件的头部信息,判断上述临时文件是否被预链接过。根据调研,造成同一操作系统下的不同设备中的相同文件不同是由于操作系统的预链接操作,预链接操作会根据设备的不同,修改可执行文件,使其可以更快的加载,在不修改系统文件的条件下,将被预链接后的可执行文件存储为临时文件,可执行文件本身不会由于计算操作被修改。然后可以对存储的临时文件执行去预链接操作,恢复成临时文件原本的状态。
然后对去预链接操作后的临时文件进行哈希计算,获得上述待检测文件的文件标识码。
而如果上述临时文件未被预链接过,则可以直接对上述临时文件进行哈希计算,获得上述待检测文件的文件标识码。
本实施例中,在进行哈希计算时,可以采用消息摘要算法第五版(Message DigestAlgorithm 5;以下简称:MD5),当然也可以采用其他的哈希算法,本实施例对所采用的哈希算法不作限定。
步骤105,将上述待检测文件的文件标识码和上述待检测文件发送给服务器,以便服务器将上述待检测文件的文件标识码与服务器中相同文件的文件标识码进行比对,确定上述待检测文件是否被病毒恶意修改。
具体地,服务器将上述待检测文件的文件标识码与服务器中相同文件的文件标识码进行比对之后,如果上述待检测文件的文件标识码与服务器中相同文件的文件标识码一致,则确定上述待检测文件未被病毒恶意修改;如果上述待检测文件的文件标识码与服务器中相同文件的文件标识码不一致,则确定上述待检测文件被病毒恶意修改。
上述文件检测方法中,打开待检测文件,将待检测文件存储为临时文件,如果上述临时文件为可执行文件,则根据上述临时文件的头部信息,判断上述临时文件是否被预链接过,如果是,则对上述临时文件执行去预链接操作,对执行去预链接操作之后的临时文件进行哈希计算,获得上述待检测文件的文件标识码,然后将上述待检测文件的文件标识码和上述待检测文件发送给服务器,以便服务器将上述待检测文件的文件标识码与服务器中相同文件的文件标识码进行比对,确定上述待检测文件是否被病毒恶意修改,从而可以提高文件是否被病毒恶意修改的检测准确率,降低可执行文件的误判概率,提高Linux操作系统的安全性。
图2为本申请文件检测方法另一个实施例的流程图,如图2所示,本申请图1所示实施例中,步骤102可以包括:
步骤201,如果上述临时文件为可执行文件,则获取上述临时文件的头部信息。
具体地,获取上述临时文件的头部信息可以为:对上述临时文件进行解析,将解析后的临时文件组织成结构体对象;从上述结构体对象中获取上述临时文件的头部信息。
其中,上述结构体对象可以为数据源对象(Data Source Object;以下简称:DSO)结构体,也就是说,对上述临时文件进行解析之后,获得上述临时文件的头部信息和上述临时文件的文件内容等信息,然后将解析获得的信息组织成DSO结构体对象,进而可以从上述DSO结构体对象中获得上述临时文件的头部信息。
步骤202,根据上述临时文件的头部信息,判断上述临时文件是否被预链接过。
图3为本申请文件检测方法再一个实施例的流程图,如图3所示,本申请图1所示实施例中,步骤103可以包括:
步骤301,对上述结构体对象执行去预链接操作,将执行去预链接操作后的结构体对象转换为待检测文件的结构。
步骤302,对转换获得的待检测文件的结构进行哈希计算,获得上述待检测文件的文件标识码。
具体地,对于DSO结构体对象来说,在对上述DSO结构体对象执行去预链接操作之后,可以对该DSO结构体对象执行去预链接操作,并通过elf_update接口将DSO结构体对象重新转为待检测文件的结构,即ELF结构。然后对重新转换获得的待检测文件的结构进行哈希计算,获得上述待检测文件的文件标识码。
图4为本申请文件检测方法再一个实施例的流程图,如图4所示,本申请图1所示实施例中,步骤101之后,还可以包括:
步骤401,如果上述临时文件不是可执行文件,则直接对上述临时文件进行哈希计算,获得上述待检测文件的文件标识码。然后,执行步骤105。
本实施例中,如果上述临时文件不是可执行文件,则可以直接对上述临时文件进行哈希计算,获得上述待检测文件的文件标识码。其中,对上述临时文件进行哈希计算时,同样可以采用MD5算法,本实施例对所采用的哈希算法不作限定。
本实施例对外提供统一的计算文件标识码的接口,在内部对不同的文件类型进行了不同的计算逻辑,确保了不同设备上运行相同的操作系统时,文件标识码的唯一性。
图5为本申请文件检测方法再一个实施例的流程图,如图5所示,本申请图1所示实施例中,步骤101之后,还可以包括:
步骤501,判断上述临时文件的文件大小是否小于或等于预定的文件大小阈值。
其中,上述预定的文件大小阈值可以在具体实现时,根据系统性能和/或实现需求等自行设定,本实施例对上述预定的文件大小阈值的大小不作限定,举例来说,上述预定的文件大小阈值可以为20兆(MB)。
如果是,即上述临时文件的文件大小小于或等于预定的文件大小阈值,则执行步骤102;而如果上述临时文件的文件大小大于预定的文件大小阈值,则可以确定上述待检测文件被病毒恶意修改,不进行文件标识码的计算,结束本次流程。
本实施例提供的文件检测方法可以确保在所有Linux操作系统下,只要Linux操作系统的发行版本一致,可执行文件(ELF文件)都会有唯一的文件标识码,将文件标识码和可执行文件,上传至服务器,与服务器中保存的相同文件的文件标识码进行比对,可以确定可执行文件是否被病毒恶意修改。
另外,当文件被执行时,监控会实时计算该文件的文件标识码,确保了非法文件不会被执行,在一定程度上杜绝了Linux操作系统下病毒代码的执行。
图6为本申请文件检测装置一个实施例的结构示意图,本申请实施例中的文件检测装置可以作为终端设备,或者终端设备的一部分实现本申请实施例提供的文件检测方法。
其中,上述终端设备可以为个人计算机(Personal Computer;以下简称:PC)或笔记本电脑等,本实施例对上述终端设备的形态不作限定。
如图6所示,上述文件检测装置可以包括:打开模块61、存储模块62、判断模块63、计算模块64和发送模块65;
其中,打开模块61,用于打开待检测文件。
存储模块62,用于将打开模块61打开的待检测文件存储为临时文件。
本实施例中,打开模块61打开待检测文件之后,存储模块62需要将上述待检测文件在内存中存储为临时文件。
具体地,打开模块61可以根据待检测文件的文件路径,直接打开待检测文件,并由存储模块62将上述待检测文件在内存中存储为临时文件,因为检测过程中不能对原有的待检测文件进行修改,所以需要将上述待检测文件在内存中存储为临时文件,不能写入新的文件。
判断模块63,用于当上述临时文件为可执行文件时,根据上述临时文件的头部信息,判断上述临时文件是否被预链接过;具体地,本实施例中,Linux操作系统中的可执行文件为ELF格式的文件,Windows操作系统中的可执行文件为exe格式的文件。
计算模块64,用于当判断模块63确定上述临时文件被预链接过时,对上述临时文件执行去预链接操作,对执行去预链接操作之后的临时文件进行哈希计算,获得上述待检测文件的文件标识码;
进一步地,计算模块64,还用于当判断模块63确定上述临时文件未被预链接过时,对上述临时文件进行哈希计算,获得上述待检测文件的文件标识码。
本实施例中,当上述临时文件为可执行文件时,判断模块63需要根据上述临时文件的头部信息,判断上述临时文件是否被预链接过。根据调研,造成同一操作系统下的不同设备中的相同文件不同是由于操作系统的预链接操作,预链接操作会根据设备的不同,修改可执行文件,使其可以更快的加载,在不修改系统文件的条件下,将被预链接后的可执行文件存储为临时文件,可执行文件本身不会由于计算操作被修改。然后计算模块64可以对存储的临时文件执行去预链接操作,恢复成临时文件原本的状态。
然后计算模块64对去预链接操作后的临时文件进行哈希计算,获得上述待检测文件的文件标识码。
而如果上述临时文件未被预链接过,则计算模块64可以直接对上述临时文件进行哈希计算,获得上述待检测文件的文件标识码。
本实施例中,在计算模块64进行哈希计算时,可以采用MD5,当然也可以采用其他的哈希算法,本实施例对计算模块64所采用的哈希算法不作限定。
发送模块65,用于将计算模块64获得的上述待检测文件的文件标识码和上述待检测文件发送给服务器,以便服务器将上述待检测文件的文件标识码与上述服务器中相同文件的文件标识码进行比对,确定上述待检测文件是否被病毒恶意修改。
具体地,服务器将上述待检测文件的文件标识码与服务器中相同文件的文件标识码进行比对之后,如果上述待检测文件的文件标识码与服务器中相同文件的文件标识码一致,则确定上述待检测文件未被病毒恶意修改;如果上述待检测文件的文件标识码与服务器中相同文件的文件标识码不一致,则确定上述待检测文件被病毒恶意修改。
上述文件检测装置中,打开模块61打开待检测文件,存储模块62将待检测文件存储为临时文件,如果上述临时文件为可执行文件,则判断模块63根据上述临时文件的头部信息,判断上述临时文件是否被预链接过,如果是,则计算模块64对上述临时文件执行去预链接操作,对执行去预链接操作之后的临时文件进行哈希计算,获得上述待检测文件的文件标识码,然后发送模块65将上述待检测文件的文件标识码和上述待检测文件发送给服务器,以便服务器将上述待检测文件的文件标识码与服务器中相同文件的文件标识码进行比对,确定上述待检测文件是否被病毒恶意修改,从而可以提高文件是否被病毒恶意修改的检测准确率,降低可执行文件的误判概率,提高Linux操作系统的安全性。
图7为本申请文件检测装置另一个实施例的结构示意图,与图6所示的文件检测装置相比,图7所示的文件检测装置中,判断模块63可以包括:获取子模块631和文件判断子模块632;
其中,获取子模块631,用于获取上述临时文件的头部信息;本实施例中,获取子模块631,具体用于对上述临时文件进行解析,将解析后的临时文件组织成结构体对象;从上述结构体对象中获取所述临时文件的头部信息。其中,上述结构体对象可以为DSO结构体,也就是说,对上述临时文件进行解析之后,获取子模块631获得上述临时文件的头部信息和上述临时文件的文件内容等信息,然后将解析获得的信息组织成DSO结构体对象,进而可以从上述DSO结构体对象中获得上述临时文件的头部信息。
文件判断子模块632,用于根据获取子模块631获取的上述临时文件的头部信息,判断上述临时文件是否被预链接过。
本实施例中,计算模块64,具体用于对上述结构体对象执行去预链接操作,将执行去预链接操作后的结构体对象转换为待检测文件的结构,以及对转换获得的待检测文件的结构进行哈希计算,获得上述待检测文件的文件标识码。
具体地,对于DSO结构体对象来说,在对上述DSO结构体对象执行去预链接操作之后,计算模块64可以对该DSO结构体对象执行去预链接操作,并通过elf_update接口将DSO结构体对象重新转为待检测文件的结构,即ELF结构。然后,计算模块64对重新转换获得的待检测文件的结构进行哈希计算,获得上述待检测文件的文件标识码。
本实施例中,计算模块64,还用于在存储模块62将打开模块61打开的待检测文件存储为临时文件之后,当上述临时文件不是可执行文件时,直接对上述临时文件进行哈希计算,获得上述待检测文件的文件标识码。
本实施例中,如果上述临时文件不是可执行文件,则计算模块64可以直接对上述临时文件进行哈希计算,获得上述待检测文件的文件标识码。其中,计算模块64对上述临时文件进行哈希计算时,同样可以采用MD5算法,本实施例对所采用的哈希算法不作限定。
本实施例对外提供统一的计算文件标识码的接口,在内部对不同的文件类型进行了不同的计算逻辑,确保了不同设备上运行相同的操作系统时,文件标识码的唯一性。
进一步,判断模块63,还用于在存储模块62将上述待检测文件存储为临时文件之后,判断上述临时文件的文件大小是否小于或等于预定的文件大小阈值。
其中,上述预定的文件大小阈值可以在具体实现时,根据系统性能和/或实现需求等自行设定,本实施例对上述预定的文件大小阈值的大小不作限定,举例来说,上述预定的文件大小阈值可以为20兆(MB)。
本实施例提供的文件检测装置可以确保在所有Linux操作系统下,只要Linux操作系统的发行版本一致,可执行文件(ELF文件)都会有唯一的文件标识码,将文件标识码和可执行文件,上传至服务器,与服务器中保存的相同文件的文件标识码进行比对,可以确定可执行文件是否被病毒恶意修改。
另外,当文件被执行时,监控会实时计算该文件的文件标识码,确保了非法文件不会被执行,在一定程度上杜绝了Linux操作系统下病毒代码的执行。
图8为本申请终端设备一个实施例的结构示意图,如图8所示,上述终端设备可以包括存储器、处理器及存储在上述存储器上并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时,可以实现本申请实施例提供的文件检测方法。
其中,上述终端设备可以为代理服务器,本实施例对上述终端设备的形态不作限定。
图8示出了适于用来实现本申请实施方式的示例性终端设备12的框图。图8显示的终端设备12仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图8所示,终端设备12以通用计算设备的形式表现。终端设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture;以下简称:ISA)总线,微通道体系结构(Micro Channel Architecture;以下简称:MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics StandardsAssociation;以下简称:VESA)局域总线以及外围组件互连(Peripheral ComponentInterconnection;以下简称:PCI)总线。
终端设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被终端设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory;以下简称:RAM)30和/或高速缓存存储器32。终端设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图8未显示,通常称为“硬盘驱动器”)。尽管图8中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如:光盘只读存储器(Compact Disc Read OnlyMemory;以下简称:CD-ROM)、数字多功能只读光盘(Digital Video Disc Read OnlyMemory;以下简称:DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本申请所描述的实施例中的功能和/或方法。
终端设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该终端设备12交互的设备通信,和/或与使得该终端设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,终端设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(Local Area Network;以下简称:LAN),广域网(Wide Area Network;以下简称:WAN)和/或公共网络,例如因特网)通信。如图8所示,网络适配器20通过总线18与终端设备12的其它模块通信。应当明白,尽管图8中未示出,可以结合终端设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本申请实施例提供的文件检测方法。
本申请还提供一种非临时性计算机可读存储介质,其上存储有计算机程序,上述计算机程序被处理器执行时实现本申请实施例提供的文件检测方法。
上述非临时性计算机可读存储介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(Read Only Memory;以下简称:ROM)、可擦式可编程只读存储器(ErasableProgrammable Read Only Memory;以下简称:EPROM)或闪存、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LocalArea Network;以下简称:LAN)或广域网(Wide Area Network;以下简称:WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(Random AccessMemory;以下简称:RAM),只读存储器(Read Only Memory;以下简称:ROM),可擦除可编辑只读存储器(Erasable Programmable Read Only Memory;以下简称:EPROM)或闪速存储器,光纤装置,以及便携式光盘只读存储器(Compact Disc Read Only Memory;以下简称:CD-ROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(ProgrammableGate Array;以下简称:PGA),现场可编程门阵列(Field Programmable Gate Array;以下简称:FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (16)
1.一种文件检测方法,其特征在于,包括:
打开待检测文件,将所述待检测文件存储为临时文件;
如果所述临时文件为可执行文件,则根据所述临时文件的头部信息,判断所述临时文件是否被预链接过;
如果是,则对所述临时文件执行去预链接操作,对执行去预链接操作之后的临时文件进行哈希计算,获得所述待检测文件的文件标识码;
将所述待检测文件的文件标识码和所述待检测文件发送给服务器,以便所述服务器将所述待检测文件的文件标识码与所述服务器中相同文件的文件标识码进行比对,确定所述待检测文件是否被病毒恶意修改。
2.根据权利要求1所述的方法,其特征在于,所述根据所述临时文件的头部信息,判断所述临时文件是否被预链接过包括:
获取所述临时文件的头部信息;
根据所述临时文件的头部信息,判断所述临时文件是否被预链接过。
3.根据权利要求2所述的方法,其特征在于,所述获取所述临时文件的头部信息包括:
对所述临时文件进行解析,将解析后的临时文件组织成结构体对象;
从所述结构体对象中获取所述临时文件的头部信息。
4.根据权利要求3所述的方法,其特征在于,所述对所述临时文件执行去预链接操作,对执行去预链接操作之后的临时文件进行哈希计算,获得所述待检测文件的文件标识码包括:
对所述结构体对象执行去预链接操作,将执行去预链接操作后的结构体对象转换为待检测文件的结构;
对转换获得的待检测文件的结构进行哈希计算,获得所述待检测文件的文件标识码。
5.根据权利要求1所述的方法,其特征在于,所述判断所述临时文件是否被预链接过之后,还包括:
如果所述临时文件未被预链接过,则对所述临时文件进行哈希计算,获得所述待检测文件的文件标识码。
6.根据权利要求1-5任意一项所述的方法,其特征在于,所述打开待检测文件,将所述待检测文件存储为临时文件之后,还包括:
如果所述临时文件不是可执行文件,则直接对所述临时文件进行哈希计算,获得所述待检测文件的文件标识码。
7.根据权利要求1-5任意一项所述的方法,其特征在于,所述打开待检测文件,将所述待检测文件存储为临时文件之后,还包括:
判断所述临时文件的文件大小是否小于或等于预定的文件大小阈值;
如果是,则执行如果所述临时文件为可执行文件,则根据所述临时文件的头部信息,判断所述临时文件是否被预链接过的步骤。
8.一种文件检测装置,其特征在于,包括:
打开模块,用于打开待检测文件;
存储模块,用于将所述打开模块打开的待检测文件存储为临时文件;
判断模块,用于当所述临时文件为可执行文件时,根据所述临时文件的头部信息,判断所述临时文件是否被预链接过;
计算模块,用于当所述判断模块确定所述临时文件被预链接过时,对所述临时文件执行去预链接操作,对执行去预链接操作之后的临时文件进行哈希计算,获得所述待检测文件的文件标识码;
发送模块,用于将所述计算模块获得的所述待检测文件的文件标识码和所述待检测文件发送给服务器,以便所述服务器将所述待检测文件的文件标识码与所述服务器中相同文件的文件标识码进行比对,确定所述待检测文件是否被病毒恶意修改。
9.根据权利要求8所述的装置,其特征在于,所述判断模块包括:
获取子模块,用于获取所述临时文件的头部信息;
文件判断子模块,用于根据所述获取子模块获取的所述临时文件的头部信息,判断所述临时文件是否被预链接过。
10.根据权利要求9所述的装置,其特征在于,
所述获取子模块,具体用于对所述临时文件进行解析,将解析后的临时文件组织成结构体对象;从所述结构体对象中获取所述临时文件的头部信息。
11.根据权利要求10所述的装置,其特征在于,
所述计算模块,具体用于对所述结构体对象执行去预链接操作,将执行去预链接操作后的结构体对象转换为待检测文件的结构,以及对转换获得的待检测文件的结构进行哈希计算,获得所述待检测文件的文件标识码。
12.根据权利要求8所述的装置,其特征在于,
所述计算模块,还用于当所述判断模块确定所述临时文件未被预链接过时,对所述临时文件进行哈希计算,获得所述待检测文件的文件标识码。
13.根据权利要求8-12任意一项所述的装置,其特征在于,
所述计算模块,还用于在所述存储模块将所述打开模块打开的待检测文件存储为临时文件之后,当所述临时文件不是可执行文件时,直接对所述临时文件进行哈希计算,获得所述待检测文件的文件标识码。
14.根据权利要求8-12任意一项所述的装置,其特征在于,
所述判断模块,还用于在所述存储模块将所述待检测文件存储为临时文件之后,判断所述临时文件的文件大小是否小于或等于预定的文件大小阈值。
15.一种终端设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-7中任一所述的方法。
16.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711405934.3A CN109960932B (zh) | 2017-12-22 | 2017-12-22 | 文件检测方法、装置和终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711405934.3A CN109960932B (zh) | 2017-12-22 | 2017-12-22 | 文件检测方法、装置和终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109960932A true CN109960932A (zh) | 2019-07-02 |
CN109960932B CN109960932B (zh) | 2021-02-02 |
Family
ID=67019487
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711405934.3A Active CN109960932B (zh) | 2017-12-22 | 2017-12-22 | 文件检测方法、装置和终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109960932B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110929110A (zh) * | 2019-11-13 | 2020-03-27 | 北京北信源软件股份有限公司 | 一种电子文档检测方法、装置、设备及存储介质 |
CN110995679A (zh) * | 2019-11-22 | 2020-04-10 | 杭州迪普科技股份有限公司 | 一种文件数据流控制方法、装置、设备及存储介质 |
CN111045996A (zh) * | 2019-11-20 | 2020-04-21 | 岭澳核电有限公司 | 核电站文件管理方法、装置、终端设备及介质 |
CN111291372A (zh) * | 2020-01-21 | 2020-06-16 | 上海戎磐网络科技有限公司 | 一种基于软件基因技术对终端设备文件检测的方法及装置 |
CN111310184A (zh) * | 2020-03-05 | 2020-06-19 | 北京安码科技有限公司 | 基于rich头部标识的pe文件特征码生成方法、系统、电子设备及存储介质 |
CN113127859A (zh) * | 2019-12-30 | 2021-07-16 | Oppo广东移动通信有限公司 | 待检测文件的检测方法、装置、终端及存储介质 |
CN113342756A (zh) * | 2021-07-02 | 2021-09-03 | 统信软件技术有限公司 | 一种临时文件占位存储方法、客户端及计算设备 |
CN113569277A (zh) * | 2021-06-25 | 2021-10-29 | 北京鼎普科技股份有限公司 | 安全文件数据检查的方法、装置和电子设备 |
CN116578537A (zh) * | 2023-07-12 | 2023-08-11 | 北京安天网络安全技术有限公司 | 文件检测方法、可读存储介质及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101639880A (zh) * | 2008-07-31 | 2010-02-03 | 华为技术有限公司 | 一种文件检测方法和装置 |
CN102147743A (zh) * | 2011-03-28 | 2011-08-10 | 博视联(苏州)信息科技有限公司 | 加快嵌入式系统应用程序启动速度的方法 |
CN107480068A (zh) * | 2017-08-22 | 2017-12-15 | 武汉斗鱼网络科技有限公司 | 代码完整性检测方法、装置、电子终端及可读存储介质 |
CN107480522A (zh) * | 2017-08-14 | 2017-12-15 | 郑州云海信息技术有限公司 | 一种elf文件执行控制系统及方法 |
-
2017
- 2017-12-22 CN CN201711405934.3A patent/CN109960932B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101639880A (zh) * | 2008-07-31 | 2010-02-03 | 华为技术有限公司 | 一种文件检测方法和装置 |
CN102147743A (zh) * | 2011-03-28 | 2011-08-10 | 博视联(苏州)信息科技有限公司 | 加快嵌入式系统应用程序启动速度的方法 |
CN107480522A (zh) * | 2017-08-14 | 2017-12-15 | 郑州云海信息技术有限公司 | 一种elf文件执行控制系统及方法 |
CN107480068A (zh) * | 2017-08-22 | 2017-12-15 | 武汉斗鱼网络科技有限公司 | 代码完整性检测方法、装置、电子终端及可读存储介质 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110929110A (zh) * | 2019-11-13 | 2020-03-27 | 北京北信源软件股份有限公司 | 一种电子文档检测方法、装置、设备及存储介质 |
CN111045996B (zh) * | 2019-11-20 | 2023-05-23 | 岭澳核电有限公司 | 核电站文件管理方法、装置、终端设备及介质 |
CN111045996A (zh) * | 2019-11-20 | 2020-04-21 | 岭澳核电有限公司 | 核电站文件管理方法、装置、终端设备及介质 |
CN110995679A (zh) * | 2019-11-22 | 2020-04-10 | 杭州迪普科技股份有限公司 | 一种文件数据流控制方法、装置、设备及存储介质 |
CN110995679B (zh) * | 2019-11-22 | 2022-03-01 | 杭州迪普科技股份有限公司 | 一种文件数据流控制方法、装置、设备及存储介质 |
CN113127859A (zh) * | 2019-12-30 | 2021-07-16 | Oppo广东移动通信有限公司 | 待检测文件的检测方法、装置、终端及存储介质 |
CN113127859B (zh) * | 2019-12-30 | 2024-04-12 | Oppo广东移动通信有限公司 | 待检测文件的检测方法、装置、终端及存储介质 |
CN111291372A (zh) * | 2020-01-21 | 2020-06-16 | 上海戎磐网络科技有限公司 | 一种基于软件基因技术对终端设备文件检测的方法及装置 |
CN111291372B (zh) * | 2020-01-21 | 2024-04-30 | 上海戎磐网络科技有限公司 | 一种基于软件基因技术对终端设备文件检测的方法及装置 |
CN111310184A (zh) * | 2020-03-05 | 2020-06-19 | 北京安码科技有限公司 | 基于rich头部标识的pe文件特征码生成方法、系统、电子设备及存储介质 |
CN113569277B (zh) * | 2021-06-25 | 2024-01-26 | 北京鼎普科技股份有限公司 | 安全文件数据检查的方法、装置和电子设备 |
CN113569277A (zh) * | 2021-06-25 | 2021-10-29 | 北京鼎普科技股份有限公司 | 安全文件数据检查的方法、装置和电子设备 |
CN113342756A (zh) * | 2021-07-02 | 2021-09-03 | 统信软件技术有限公司 | 一种临时文件占位存储方法、客户端及计算设备 |
CN113342756B (zh) * | 2021-07-02 | 2024-07-09 | 统信软件技术有限公司 | 一种临时文件占位存储方法、客户端及计算设备 |
CN116578537A (zh) * | 2023-07-12 | 2023-08-11 | 北京安天网络安全技术有限公司 | 文件检测方法、可读存储介质及电子设备 |
CN116578537B (zh) * | 2023-07-12 | 2023-09-22 | 北京安天网络安全技术有限公司 | 文件检测方法、可读存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109960932B (zh) | 2021-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109960932A (zh) | 文件检测方法、装置和终端设备 | |
US8527950B2 (en) | Verification of software applications | |
US10380349B2 (en) | Security analysis using relational abstraction of data structures | |
CN109726136A (zh) | 数据库的测试方法、装置、设备和存储介质 | |
US11797668B2 (en) | Sample data generation apparatus, sample data generation method, and computer readable medium | |
CN103678053B (zh) | 计算机自检方法和系统 | |
US9665797B2 (en) | Environmental-based location monitoring | |
CN109543560A (zh) | 一种视频中人物的分割方法、装置、设备和计算机存储介质 | |
CN107621040A (zh) | 温度传感器的纠错方法、装置和空调器 | |
US10990669B2 (en) | Vehicle intrusion detection system training data generation | |
CN109145164A (zh) | 数据处理方法、装置、设备和介质 | |
JP2019148882A (ja) | トラヒック特徴情報抽出装置、トラヒック特徴情報抽出方法、及びトラヒック特徴情報抽出プログラム | |
CN109933254A (zh) | 展示阅读内容的方法、设备和计算机存储介质 | |
US20170339175A1 (en) | Using natural language processing for detection of intended or unexpected application behavior | |
CN113792319A (zh) | 文件加密方法、装置、存储介质与电子设备 | |
CN109165372A (zh) | 一种网页加载方法、装置、设备及存储介质 | |
CN112579988A (zh) | 影子栈数据完整性保护方法、装置和计算机设备 | |
CN112583805A (zh) | 基于区块链的数据处理方法、装置、电子设备及存储介质 | |
US8516311B2 (en) | System and method for testing peripheral component interconnect express switch | |
US10318144B2 (en) | Providing force input to an application | |
CN109669875A (zh) | 应用崩溃测试方法、装置、电子设备及存储介质 | |
CN109977669B (zh) | 病毒识别方法、装置和计算机设备 | |
CH717045B1 (it) | Sistemi e metodi di protezione contro la modifica non autorizzata di dump di memoria. | |
CN110928814A (zh) | 串口硬盘传输异常检测方法、装置及电子设备 | |
CN110278099A (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 |