CN110941478B - 文件扫描任务的执行方法、装置及计算设备 - Google Patents

文件扫描任务的执行方法、装置及计算设备 Download PDF

Info

Publication number
CN110941478B
CN110941478B CN201811108133.5A CN201811108133A CN110941478B CN 110941478 B CN110941478 B CN 110941478B CN 201811108133 A CN201811108133 A CN 201811108133A CN 110941478 B CN110941478 B CN 110941478B
Authority
CN
China
Prior art keywords
memory
file
feature
queried
shader
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
CN201811108133.5A
Other languages
English (en)
Other versions
CN110941478A (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.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo 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 Beijing Qihoo Technology Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201811108133.5A priority Critical patent/CN110941478B/zh
Publication of CN110941478A publication Critical patent/CN110941478A/zh
Application granted granted Critical
Publication of CN110941478B publication Critical patent/CN110941478B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Image Generation (AREA)
  • Advance Control (AREA)

Abstract

本发明公开了一种文件扫描任务的执行方法、装置、计算设备及计算机存储介质。其方法包括当检测到文件扫描任务时,获取文件扫描任务对应的待查询特征以及扫描算法所引用的参数信息;将待查询特征以及扫描算法所引用的参数信息传递给图形处理器,以调用预先创建的计算着色器基于图形处理器执行文件扫描任务,其中,计算着色器通过编译扫描算法而创建;从图形处理器的用于存储执行结果的第一内存中获得执行结果。通过上述方式,本发明在检测到文件扫描任务时,通过图形处理器并行执行文件扫描任务,大大提高文件扫描任务的处理效率;另外,通过图形处理器执行文件扫描任务,而不是使用CPU执行文件扫描任务,有利于降低对CPU资源的占用。

Description

文件扫描任务的执行方法、装置及计算设备
技术领域
本发明涉及信息安全技术领域,具体涉及一种文件扫描任务的执行方法、装置及计算设备。
背景技术
计算机病毒是指编制者在计算机程序中插入的破坏计算机功能或者数据,影响计算机的正常使用,又能自我复制的一组计算机指令或者程序代码。目前,常见的计算机病毒包括:感染性病毒、后门程序、键盘记录器、密码盗取者、Word和Excel宏病毒、引导区病毒、脚本病毒、木马、犯罪软件、间谍软件和广告软件等等。为了降低计算机病毒对计算机的影响,通常会在计算机之中配置杀毒软件,当计算机系统中的文件被病毒感染时,通过杀毒软件对进行扫描,以便发现并清除这些病毒。
但是,本发明的发明人在实现本发明的过程中,发现:目前,杀毒软件对文件进行扫描,大多数是通过计算机的CPU执行特征码扫描的方式实现,即:对比文件是否包含有杀毒软件的病毒特征库中的病毒特征,若包含,则确定该文件包含病毒;而目前,病毒类型非常多,病毒特征库中的病毒特征非常庞大,在对一文件进行病毒扫描时,需要执行的特征比对的次数非常多,对CPU资源的占用是异常的大,这也是当计算机在执行病毒扫描时,再控制计算机执行其它操作时,计算机容易出现卡死的原因。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的文件扫描任务的执行方法、装置及计算设备及计算机存储介质。
根据本发明的一个方面,提供了一种文件扫描任务的执行方法,其包括:当检测到文件扫描任务时,获取所述文件扫描任务对应的待查询特征以及扫描算法所引用的参数信息;将所述待查询特征以及扫描算法所引用的参数信息传递给图形处理器,以调用预先创建的计算着色器基于所述图形处理器执行所述文件扫描任务,其中,所述计算着色器通过编译所述扫描算法而创建;从所述图形处理器的用于存储执行结果的第一内存中获得所述执行结果。
根据本发明的一个方面,提供了一种文件扫描任务的执行装置,包括:第一获取模块,用于当检测到文件扫描任务时,获取所述文件扫描任务对应的待查询特征以及扫描算法所引用的参数信息;设置模块,用于将所述待查询特征以及扫描算法所引用的参数信息传递给图形处理器,以调用预先创建的计算着色器基于所述图形处理器执行所述文件扫描任务,其中,所述计算着色器通过编译所述扫描算法而创建;第二获取模块,用于从所述图形处理器的用于存储执行结果的第一内存中获得所述执行结果。
根据本发明的又一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;存储器用于存放至少一可执行指令,可执行指令使处理器执行上述文件扫描任务的执行方法对应的操作。
根据本发明的再一方面,提供了一种计算机存储介质,存储介质中存储有至少一可执行指令,可执行指令使处理器执行如上述文件扫描任务的执行方法对应的操作。
根据本发明的文件扫描任务的执行方法、装置、计算设备及计算机存储介质,当检测到文件扫描任务时,将文件扫描任务对应的待查询特征以及扫描算法所引用的参数信息传递给图形处理器,以调用预先创建的计算着色器基于图形处理器执行文件扫描任务,由于图形处理器具备并行处理能力,因此,图形处理器在根据扫描算法对待查询特征进行扫描可以并行执行,大大提高文件扫描任务的处理效率;另外,通过图形处理器执行文件扫描任务,而不是使用CPU执行文件扫描任务,有利于降低对CPU资源的占用,优化了计算机运行的性能,改善了用户对执行文件扫描任务的安全软件的使用体验,提升了软件产品的竞争力。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明第一实施例的文件扫描任务的执行方法的流程图;
图2示出了根据本发明第二实施例的文件扫描任务的执行方法的流程图;
图3示出了根据本发明第二实施例的文件扫描任务的执行方法中判断图形处理器是否支持运算功能的流程图;
图4示出了根据本发明第三实施例的文件扫描任务的执行装置的示意图;
图5示出了根据本发明第四实施例的文件扫描任务的执行装置的示意图;
图6示出了根据本发明第六实施例的一种计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
请参阅图1,图1本发明文件扫描任务的执行方法第一实施例的流程图,方法包括:
步骤101:当检测到文件扫描任务时,获取文件扫描任务对应的待查询特征以及扫描算法所引用的参数信息;
文件扫描任务是指对待扫描文件进行病毒扫描,以检查待扫描文件中是否包含病毒的任务。触发文件扫描任务可以是用户操作触发的,例如:用户启动杀毒软件,并选定一待扫描文件进行扫描,又或者,预先设置触发文件扫描任务的触发条件,当满足条件时,触发文件扫描任务,例如:在用户从网络下载文件时,在文件下载完成时触发文件扫描任务。
待查询特征是指待进行病毒扫描的特征,针对任一待扫描的文件,例如:存储于计算机本地的本地文件,或者存储于网络的网络文件,通过某种现有的算法提取待扫描的文件的相关特征,即得到待查询特征。
参数信息用于配置扫描算法的相关参数,在一些实施例中,参数信息包含扫描顺序,则当设置扫描顺序之后,扫描算法进行扫描时按设置扫描顺序进行扫描,比如:顺序扫描、倒序扫描。
步骤102:将待查询特征以及扫描算法所引用的参数信息传递给图形处理器,以调用预先创建的计算着色器基于图形处理器执行文件扫描任务,其中,计算着色器通过编译扫描算法而创建;
计算着色器是控制图形处理器的一个程序,其中,计算着色器是根据扫描算法生成,因此,计算着色器具有扫描算法的控制逻辑。图形处理器在执行任务的时候是并行执行的,因此,图形处理器的处理效率是非常高,但是其要求各个任务可以独立执行的。而文件扫描任务中各个待查询特征都是独立进行扫描,因此,文件扫描任务非常适合图形处理器执行。
步骤103:从图形处理器的用于存储执行结果的第一内存中获得执行结果。
第一内存是预先申请的,用于保存扫描的执行结果。由于第一内存是位于图形处理器之中,当需要从图形处理器调取执行结果时,需要使用到Map命令,通过Map命令从图形处理器的第一内存拷贝出。
需要说明的是:触发从第一内存拷贝执行结果的触发方式,不作限定,可以在每执行一个待查找特征时,就拷贝一次,也可以在所有待查找特征都扫描完成,都得到执行结果之后,再拷贝出来。
在一些实施例中,在得到执行结果之后,还可以检查执行结果是否指示存在病毒,若是,输出存在病毒提示,若否,则输出安全提示。另外,当执行结果指示存在病毒时,还可以对存在病毒的待查找特征进行预隔离,被预隔离的待查找特征,用户无法进行操作,只能执行删除处理,可以很好地避免用户误操作到存在病毒的待查找特征,从而造成病毒感的情况。
在本发明实施例中,当检测到文件扫描任务时,将文件扫描任务对应的待查询特征以及扫描算法所引用的参数信息传递给图形处理器,以调用预先创建的计算着色器基于图形处理器执行文件扫描任务,由于图形处理器具备并行处理能力,因此,图形处理器在根据扫描算法对待查询特征进行扫描可以并行执行,大大提高文件扫描任务的处理效率,并且降低对CPU资源的占用率,优化了计算机运行的性能,改善了用户对执行文件扫描任务的安全软件的使用体验,提升了软件产品的竞争力。
请参阅图2,图2是本发明文件扫描任务的执行方法第二实施例的流程图,方法包括:
步骤201:判断图形处理器是否支持运算功能,若是,则进入步骤202,否则,通过CPU执行文件扫描任务;
图形处理器的运算功能是指图形处理器可以执行类CPU的运算操作,当图形处理器不具运算功能时,无法对图形处理器进行逻辑控制,即无法创建基于图形处理器的计算着色器,具体的,如图3所示,判断图形处理器是否支持运算功能包括
步骤3011:判断图形处理器的版本号是否高于预设版本号,以及图形处理器是否支持硬件操作选项,若是,则执行步骤3012,否则执行步骤3013;
步骤3012:确定图形处理器支持运算功能;
步骤3013:确定图形处理器不支持运算功能。
上述步骤201是本实施例的检测阶段,主要是检测图形处理器是否支持文件扫描任务对应的运算功能,若支持,则在后续执行相应的文件扫描任务时,不必在重复进行判断。
步骤202:获取支持运算功能的适配器,对扫描算法进行编译,创建计算着色器。
通常图形处理器会将所有硬件资源划分成几组,一组硬件资源为一个适配器,不同适配器所支持的功能不相同,当然,在另一些实施例中,也可以使所有适配器都支持相同的功能。所创建的计算着色器用于控制所获取到的支持运算功能的适配器进行扫描处理。
可以理解的是:在一些实施例中,用于执行文件扫描任务的计算着色器也可以在需要时候创建,当文件扫描任务执行完成之后,销毁该计算着色器,以减少对图形处理器资源的占用。而触发创建计算着色器可以是在检测到文件扫描任务,并且确定图形处理器支持运算功能时,若图形处理器为支持运算功能,则还是使用CPU来执行文件扫描任务。而触发销毁该计算着色器是从图形处理器提取执行结果之后。
在一些实施例中,计算着色器可以通过脚本创建的,则步骤201中对扫描算法进行编译,创建计算着色器具体为:获取预编写的特征匹配程序脚本,对特征匹配程序脚本进行编译,创建计算着色器。其中,特征匹配程序脚本是基于高阶着色器语言或者其它图形处理器所支持的语言编写的。
在一些实施例中,计算着色器的配置参数可以设置成可调的,以方便用户根据不同需求进行调整,而对于计算着色器的配置参数的调整方式可以在创建计算着色器时,弹出选择框供用户选择,当用户在弹出选择框选择之后,获取用户选择的配置参数,并且该配置参数传递至计算着色器,从而调整计算着色器的配置参数,或者,获取针对计算着色器的配置参数,将配置参数映射至特征匹配程序脚本中,例如,映射至特征匹配程序脚本的全局变量中,当特征匹配程序脚本进行编译创建计算着色器时,会根据配置参数设置计算着色器,又或者,设置配置文件,在配置文件中存储计算着色器的配置参数,在创建或者编译计算着色器时,从配置文件中获取配置参数来配置计算着色器,用户通过修改配置文件来修改计算着色器的配置参数。
步骤203:将病毒特征库迁移至适配器的内存中;
病毒特征库是指包含病毒特征的库文件。适配器用于存储病毒特征库的内存可以根据病毒特征库的文件大小进行分配,以保证适配器的内存可以满足存储病毒特征库。
步骤204:向图形处理器申请第一内存和用于存储待查询特征的第二内存。
为了后续在执行文件扫描任务的过程中存储相应数据,需要在图形处理器中预先规划出存储相应数据的内存空间。本实施例预先向图形处理器申请两块内存,其中第一内存用于存储执行结果,第二内存用于存储待查询特征。
上述步骤202至步骤204为本实施例的准备阶段,针对特定的扫描算法,创建对应的计算着色器,将安全软件的病毒特征库迁移至适配器内存中,并向图形处理器申请至少两块内存空间。
步骤205:当检测到文件扫描任务时,获取文件扫描任务对应的待查询特征以及扫描算法所引用的参数信息。
步骤206:将待查询特征映射到第二内存中,设置扫描算法所引用的参数信息,以调用预先创建的计算着色器基于图形处理器执行文件扫描任务,其中,计算着色器通过编译扫描算法而创建。
在一些实施例中,先声明图形处理器运行时对应的计算着色器、适配器内存、参数信息、第一内存和第二内存,然后向计算着色器发送启动扫描指令,以调用计算着色器基于图形处理器执行文件扫描任务。
在一些实施例中,在申请第二内存时,可以根据待查询特征的文件大小进行申请,以使第二内存满足存储待查询特征。但是由于图形处理器的适配器的内存大小通常是有限的,若待查询特征的文件大小过大时,超过图形处理器的剩余可用内存时,可以按预定算法进行申请,例如:申请固定大小的内存。
此外,当待查询特征的文件大小大于第二内存的空间大小时,还可以对待查询特征进行分块迁移至第二内存,则具体的,方法还包括:判断待查询特征的文件大小是否大于第二内存的空间大小,将待查询特征映射到第二内存中具体为:若否,将待查询特征映射到第二内存中,若是,根据第二内存的空间大小,将待查询特征分割成若干文件块,并且将若干文件块逐块映射到第二内存中。在对待查询特征进行分块时是按第二内存的空间大小进行划分,可以第二内存可以存储得下任一块文件块,并且使得每一文件块尽可能地利用第二内存,充分利用第二内存的内存空间。
当然,在任一文件块映射到第二内存之后,向计算着色器发送启动扫描指令,以使计算着色器基于图形处理器进行特征比对;循环执行本步骤,直至待查询特征分割得到的所有文件块都比对完成。即每迁移一个文件块,计算着色器执行一次扫描,在扫描完成之后,又迁移下一个文件块,计算着色器执行又执行一次扫描。
值得说明的是:每向第二内存迁移一个文件块时,文件块都会覆盖第二内存中已经存储的文件块。当一文件块的文件大小小于已经存储于第二内存内的文件块的文件大小时,在该一文件块迁移到第二内存之后,对于第二内存剩余其它空间进行擦除处理,避免重复比对。
步骤207:从图形处理器的用于存储执行结果的第一内存中获得执行结果;
值得说明的是:本实施例中步骤205至步骤207与文件扫描任务的执行方法第一实施例步骤101至103相同,此处不再一一赘述。
在本发明实施例中,当检测到文件扫描任务时,将文件扫描任务对应的待查询特征以及扫描算法所引用的参数信息传递给图形处理器,以调用预先创建的计算着色器基于图形处理器执行文件扫描任务,由于图形处理器具备并行处理能力,因此,图形处理器在根据扫描算法对待查询特征进行扫描可以并行执行,大大提高文件扫描任务的处理效率;本实施例将文件扫描任务由CPU迁移至图形处理器进行处理,有利于降低扫描器对CPU资源的占用;另外,本实施例充分利用图形处理器自身的高速、大量、并发的特性,提升了文件扫描任务的处理效率,使得扫描器在不降低其它性能的基础上提升查杀效率。本实施例优化了计算机运行的性能,改善了用户对执行文件扫描任务的安全软件的使用体验,提升了软件产品的竞争力。
请参阅图4,图4是本发明文件扫描任务的执行装置第三实施例的示意图,文件扫描任务的执行装置40包括:第一获取模块401、设置模块402和第二获取模块403。
第一获取模块401用于当检测到文件扫描任务时,获取文件扫描任务对应的待查询特征以及扫描算法所引用的参数信息。设置模块402用于将待查询特征以及扫描算法所引用的参数信息传递给图形处理器,以调用预先创建的计算着色器基于图形处理器执行文件扫描任务,其中,计算着色器通过编译扫描算法而创建。第二获取模块403用于从图形处理器的用于存储执行结果的第一内存中获得执行结果。
在检测到文件扫描任务时,将待查询特征以及扫描算法所引用的参数信息传递给图形处理器,以调用预先创建的计算着色器基于图形处理器执行文件扫描任务,图形处理器具有并行处理性能,通过并行执行文件扫描任务,有利于提高文件扫描任务的执行效率,并且通过图形处理器执行文件扫描任务,而不是使用CPU执行文件扫描任务,有利于降低对CPU资源的占用。
请参阅图5,图5是本发明文件扫描任务的执行装置第四实施例的示意图,本实施例与上述文件扫描任务的执行装置第一实施例不同之处在于:文件扫描任务的执行装置40还包括第一判断模块404、编译模块405、迁移模块406和申请模块407。
第一判断模块404,用于判断图形处理器是否支持运算功能。在一些实施例中,第一判断模块404判断图形处理器是否支持运算功能具体包括:判断图形处理器的版本号是否高于预设版本号,以及图形处理器是否支持硬件操作选项,若是,则确定图形处理器支持运算功能,否则,确定图形处理器不支持运算功能。
编译模块405用于在判断模块判断图形处理器支持运算功能时,获取支持运算功能的适配器,对扫描算法进行编译,创建计算着色器。迁移模块406用于将病毒特征库迁移至适配器的内存中。申请模块407用于向图形处理器申请第一内存和用于存储待查询特征的第二内存。设置模块402具体用于将待查询特征以及扫描算法所引用的参数信息传递给图形处理器具体包括:将待查询特征映射到第二内存中,设置扫描算法所引用的参数信息。计算着色器是用于控制图形处理器的控制程序,其是根据扫描算法生成的,因此,其也具有扫描算法的控制逻辑。
预先判断图形处理器是否具有类CPU的运算功能,只有当图形处理器具有运算功能时才能通过图形处理器执行文件扫描任务,否则仍然使用CPU执行文件扫描任务。
在一些实施例中,编译模块405对扫描算法进行编译,创建计算着色器具体包括:获取预编写的特征匹配程序脚本600,对特征匹配程序脚本600进行编译,创建计算着色器。可选的,特征匹配程序脚本600是基于高阶着色器语言编写的。
可以理解的是,在另一些实施例中,也可以通过其它方式创建计算着色器,例如:根据扫描算法编写一个用于在图形处理器中创建计算着色器的程序软件,然后在设备中设置对应的服务,当设备启动时,该服务同步启动,并且该服务运行该程序软件,从而在图形处理器中创件计算着色器。
进一步的,文件扫描任务的执行装置40还包括:第二判断模块408、第三获取模块409和映射模块500。
第二判断模块408用于判断待查询特征的文件大小是否大于第二内存的空间大小。设置模块402将待查询特征映射到第二内存中具体为,若待查询特征的文件大小小于或等于第二内存的空间大小,将待查询特征映射到第二内存中,若待查询特征的文件大小大于第二内存的空间大小,根据第二内存的空间大小,将待查询特征分割成若干文件块,并且将若干文件块逐块映射到第二内存中,实现待查询特征分块迁移至第二内存之中。
当待查询特征分块迁移至第二内存之中,每传输一块文件块,计算着色执行一次扫描,扫描完成之后,再迁移另一块文件块,然后计算着色器又执行一次扫描,如此循环,直至所有文件块都已扫描完成,实现分块扫描。则调用预先创建的计算着色器基于图形处理器执行文件扫描任务进一步包括:用于在任一文件块映射到第二内存之后,向计算着色器发送启动扫描指令,以使计算着色器基于图形处理器进行特征比对;循环执行本步骤,直至待查询特征分割得到的所有文件块都比对完成。
第三获取模块409用于获取针对计算着色器的配置参数。映射模块500用于将配置参数映射至特征匹配程序脚本600中。当特征匹配程序脚本600被编译时,配置参数也会相应传递至计算着色器之中,对计算着色器进行配置。
可以理解的是:在另一些实施例中,计算着色器的配置参数也可以通过其它方式设置,例如:先创建计算着色器,弹出选择框供用户选择,当用户在弹出选择框选择之后,获取用户选择的配置参数,并且该配置参数传递至计算着色器,从而调整计算着色器的配置参数。
在本发明实施例中,当第一获取模块401检测到文件扫描任务时,设置模块402将文件扫描任务对应的待查询特征以及扫描算法所引用的参数信息传递给图形处理器,以调用预先创建的计算着色器基于图形处理器执行文件扫描任务,由于图形处理器具备并行处理能力,因此,图形处理器在根据扫描算法对待查询特征进行扫描可以并行执行,大大提高文件扫描任务的处理效率;另外,通过图形处理器执行文件扫描任务,而不是使用CPU执行文件扫描任务,有利于降低对CPU资源的占用。
本发明实施例五提供了一种非易失性计算机存储介质,计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的文件扫描任务的执行方法。
图6示出了根据本发明实施例六的一种计算设备的结构示意图,本发明具体实施例并不对计算设备的具体实现做限定。
如图6所示,该计算设备可以包括:处理器(processor)702、通信接口(Communications Interface)704、存储器(memory)706、通信总线708以及图形处理器709。
其中:
处理器702、通信接口704、以及存储器706通过通信总线708完成相互间的通信。
通信接口704,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器702和图形处理器709,用于执行程序710,具体可以执行上述文件扫描任务的执行方法的相关步骤。
具体地,程序710可以包括程序代码,该程序代码包括计算机操作指令。
处理器702可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器706,用于存放程序710。存储器706可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序710具体可以用于使得处理器702和图形处理器709执行以下操作:
当检测到文件扫描任务时,获取文件扫描任务对应的待查询特征以及扫描算法所引用的参数信息;
将待查询特征以及扫描算法所引用的参数信息传递给图形处理器,以调用预先创建的计算着色器基于图形处理器执行文件扫描任务,其中,计算着色器通过编译扫描算法而创建;
从图形处理器的用于存储执行结果的第一内存中获得执行结果。
程序710具体还可以用于使得处理器702和图形处理器709执行以下操作:
判断图形处理器是否支持运算功能;
若是,则获取支持运算功能的适配器,对扫描算法进行编译,创建计算着色器;
将病毒特征库迁移至适配器的内存中;
向图形处理器申请第一内存和用于存储待查询特征的第二内存。
程序710具体还可以用于使得处理器702执行对扫描算法进行编译,创建计算着色器的操作,包括:获取预编写的特征匹配程序脚本,对特征匹配程序脚本进行编译,创建计算着色器。在一些实施中,特征匹配程序脚本是基于高阶着色器语言编写的。
程序710具体还可以用于使得处理器702在执行在编译特征匹配程序脚本,得到计算着色器之前,执行:
获取针对计算着色器的配置参数;
将配置参数映射至特征匹配程序脚本中
程序710具体还可以用于使得处理器702执行判断图形处理器是否支持运算功能的操作包括:
判断图形处理器的版本号是否高于预设版本号,以及图形处理器是否支持硬件操作选项;
若是,则确定图形处理器支持运算功能;
否则,确定图形处理器不支持运算功能。
程序710具体还可以用于使得处理器702执行将待查询特征以及扫描算法所引用的参数信息传递给图形处理器的操作,包括:
将待查询特征映射到第二内存中;
设置扫描算法所引用的参数信息。
程序710具体还可以用于使得处理器702在执行在将待查询特征映射到第二内存中之前的操作之前,执行如下操作:
判断待查询特征的文件大小是否大于第二内存的空间大小;
将待查询特征映射到第二内存中具体为:
若待查询特征的文件大小小于或等于第二内存的空间大小,将待查询特征映射到第二内存中;
若待查询特征的文件大小大于第二内存的空间大小,根据第二内存的空间大小,将待查询特征分割成若干文件块,并且将若干文件块逐块映射到第二内存中。
程序710具体还可以用于使得处理器702执行调用预先创建的计算着色器基于图形处理器执行文件扫描任务的操作包括:在任一文件块映射到第二内存之后,向计算着色器发送启动扫描指令,以使计算着色器基于图形处理器进行特征比对;循环执行本步骤,直至待查询特征分割得到的所有文件块都比对完成
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的文件扫描任务的执行装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (14)

1.一种文件扫描任务的执行方法,其中,所述方法包括:
当检测到文件扫描任务时,获取所述文件扫描任务对应的待查询特征以及扫描算法所引用的参数信息;
将所述待查询特征以及扫描算法所引用的参数信息传递给图形处理器,以调用预先创建的计算着色器基于所述图形处理器执行所述文件扫描任务,其中,所述计算着色器通过编译所述扫描算法而创建;
从所述图形处理器的用于存储执行结果的第一内存中获得所述执行结果;
其中,所述当检测到文件扫描任务时,获取所述文件扫描任务对应的待查询特征以及扫描算法所引用的参数信息之前,还包括:
判断所述图形处理器是否支持运算功能;
若是,则获取支持运算功能的适配器以及预编写的特征匹配程序脚本,所述特征匹配程序脚本基于高阶着色器语言编写;
对所述特征匹配程序脚本进行编译,创建计算着色器;
将病毒特征库迁移至所述适配器的内存中;
向所述图形处理器申请所述第一内存和用于存储待查询特征的第二内存。
2.根据权利要求1中所述的方法,其中,在编译特征匹配程序脚本,得到所述计算着色器之前,所述方法还包括:
获取针对所述计算着色器的配置参数;
将所述配置参数映射至所述特征匹配程序脚本对应的全局变量中。
3.根据权利要求1所述的方法,其中,所述判断所述图形处理器是否支持运算功能进一步包括:
判断所述图形处理器的版本号是否高于预设版本号,以及所述图形处理器是否支持硬件操作选项;
若是,则确定所述图形处理器支持运算功能;
否则,确定所述图形处理器不支持运算功能。
4.根据权利要求1所述的方法,其中,所述将所述待查询特征以及扫描算法所引用的参数信息传递给图形处理器进一步包括:
将所述待查询特征映射到所述第二内存中;
设置所述扫描算法所引用的参数信息。
5.根据权利要求4所述的方法,其中,在将所述待查询特征映射到所述第二内存中之前,所述方法还包括:
判断所述待查询特征的文件大小是否大于所述第二内存的空间大小;
所述将所述待查询特征映射到所述第二内存中具体为:
若所述待查询特征的文件大小小于或等于所述第二内存的空间大小,将所述待查询特征映射到所述第二内存中;
若所述待查询特征的文件大小大于所述第二内存的空间大小,根据所述第二内存的空间大小,将所述待查询特征分割成若干文件块,并且将所述若干文件块逐块映射到所述第二内存中。
6.根据权利要求5所述的方法,其中,所述调用预先创建的计算着色器基于所述图形处理器执行所述文件扫描任务进一步包括:
在任一文件块映射到第二内存之后,向所述计算着色器发送启动扫描指令,以使所述计算着色器基于所述图形处理器进行特征比对;循环执行本步骤,直至所述待查询特征分割得到的所有文件块都比对完成。
7.一种文件扫描任务的执行装置,其中,包括:
第一获取模块,用于当检测到文件扫描任务时,获取所述文件扫描任务对应的待查询特征以及扫描算法所引用的参数信息;
设置模块,用于将所述待查询特征以及扫描算法所引用的参数信息传递给图形处理器,以调用预先创建的计算着色器基于所述图形处理器执行所述文件扫描任务,其中,所述计算着色器通过编译所述扫描算法而创建;
第二获取模块,用于从所述图形处理器的用于存储执行结果的第一内存中获得所述执行结果;
其中,还包括:
第一判断模块,用于判断所述图形处理器是否支持运算功能;
编译模块,用于在所述判断模块判断图形处理器支持运算功能时,获取支持运算功能的适配器以及预编写的特征匹配程序脚本,所述特征匹配程序脚本基于高阶着色器语言编写;对所述特征匹配程序脚本进行编译,创建所述计算着色器;
迁移模块,用于将病毒特征库迁移至所述适配器的内存中;
申请模块,用于向所述图形处理器申请所述第一内存和用于存储待查询特征的第二内存。
8.根据权利要求7所述的执行装置,其中,还包括:
第三获取模块,用于获取针对所述计算着色器的配置参数;
映射模块,用于将所述配置参数映射至所述特征匹配程序脚本对应的全局变量中。
9.根据权利要求7所述的执行装置,其中,所述第一判断模块进一步用于:判断所述图形处理器的版本号是否高于预设版本号,以及所述图形处理器是否支持硬件操作选项,若是,则确定所述图形处理器支持运算功能,否则,确定所述图形处理器不支持运算功能。
10.根据权利要求7所述的执行装置,其中,所述设置模块进一步用于:将所述待查询特征映射到所述第二内存中;设置所述扫描算法所引用的参数信息。
11.根据权利要求10所述的执行装置,其中,还包括:
第二判断模块,用于判断所述待查询特征的文件大小是否大于所述第二内存的空间大小;
所述设置模块进一步用于:
若所述待查询特征的文件大小小于或等于所述第二内存的空间大小,将所述待查询特征映射到所述第二内存中;
若所述待查询特征的文件大小大于所述第二内存的空间大小,根据所述第二内存的空间大小,将所述待查询特征分割成若干文件块,并且将所述若干文件块逐块映射到所述第二内存中。
12.根据权利要求11所述的执行装置,其中,所述设置模块进一步用于:
在任一文件块映射到第二内存之后,向所述计算着色器发送启动扫描指令,以使所述计算着色器基于所述图形处理器进行特征比对;循环执行本步骤,直至所述待查询特征分割得到的所有文件块都比对完成。
13.一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-6中任一项所述的文件扫描任务的执行方法。
14.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-6中任一项所述的文件扫描任务的执行方法。
CN201811108133.5A 2018-09-21 2018-09-21 文件扫描任务的执行方法、装置及计算设备 Active CN110941478B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811108133.5A CN110941478B (zh) 2018-09-21 2018-09-21 文件扫描任务的执行方法、装置及计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811108133.5A CN110941478B (zh) 2018-09-21 2018-09-21 文件扫描任务的执行方法、装置及计算设备

Publications (2)

Publication Number Publication Date
CN110941478A CN110941478A (zh) 2020-03-31
CN110941478B true CN110941478B (zh) 2024-03-01

Family

ID=69905194

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811108133.5A Active CN110941478B (zh) 2018-09-21 2018-09-21 文件扫描任务的执行方法、装置及计算设备

Country Status (1)

Country Link
CN (1) CN110941478B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7818807B1 (en) * 2006-06-30 2010-10-19 Symantec Corporation System and method of logical prefetching for optimizing file scanning operations
CN103123675A (zh) * 2013-01-24 2013-05-29 北京奇虎科技有限公司 扫描计算机病毒的方法和装置
CN103207970A (zh) * 2013-04-28 2013-07-17 北京奇虎科技有限公司 病毒文件扫描方法及装置
CN103390130A (zh) * 2013-07-18 2013-11-13 北京奇虎科技有限公司 基于云安全的恶意程序查杀的方法、装置和服务器
CN103559443A (zh) * 2013-11-01 2014-02-05 北京奇虎科技有限公司 多核设备的病毒扫描方法和装置
CN106796636A (zh) * 2014-10-25 2017-05-31 迈克菲股份有限公司 计算平台安全方法和装置
CN107077566A (zh) * 2014-10-25 2017-08-18 迈克菲股份有限公司 计算平台安全方法和装置
CN108446300A (zh) * 2018-01-26 2018-08-24 北京奇虎科技有限公司 数据信息的扫描方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8392989B2 (en) * 2009-10-06 2013-03-05 Nvidia Corporation Anti-malware scanning in parallel processors of a graphics processing unit
US10210591B2 (en) * 2015-02-02 2019-02-19 Microsoft Technology Licensing, Llc Optimizing compilation of shaders

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7818807B1 (en) * 2006-06-30 2010-10-19 Symantec Corporation System and method of logical prefetching for optimizing file scanning operations
CN103123675A (zh) * 2013-01-24 2013-05-29 北京奇虎科技有限公司 扫描计算机病毒的方法和装置
CN103207970A (zh) * 2013-04-28 2013-07-17 北京奇虎科技有限公司 病毒文件扫描方法及装置
CN103390130A (zh) * 2013-07-18 2013-11-13 北京奇虎科技有限公司 基于云安全的恶意程序查杀的方法、装置和服务器
CN103559443A (zh) * 2013-11-01 2014-02-05 北京奇虎科技有限公司 多核设备的病毒扫描方法和装置
CN106796636A (zh) * 2014-10-25 2017-05-31 迈克菲股份有限公司 计算平台安全方法和装置
CN107077566A (zh) * 2014-10-25 2017-08-18 迈克菲股份有限公司 计算平台安全方法和装置
CN108446300A (zh) * 2018-01-26 2018-08-24 北京奇虎科技有限公司 数据信息的扫描方法及装置

Also Published As

Publication number Publication date
CN110941478A (zh) 2020-03-31

Similar Documents

Publication Publication Date Title
JP6700351B2 (ja) プロセスのアドレス空間内の悪意のあるコードの検出のためのシステムおよび方法
RU2632163C2 (ru) Общая распаковка приложений для обнаружения вредоносных программ
KR101880375B1 (ko) 네트워크 활동을 보이는 실행파일들의 분리
US10642973B2 (en) System and method of analysis of files for maliciousness and determining an action
JP6282305B2 (ja) ハイパーバイザモードにおけるコードの安全な実行システムおよび方法
US9311126B2 (en) System and method for virtual partition monitoring
US20100205604A1 (en) Systems and methods for efficiently running multiple instances of multiple applications
CN114816417B (zh) 一种交叉编译方法、装置、计算设备及存储介质
CN109558207B (zh) 在虚拟机中形成用于进行文件的防病毒扫描的日志的系统和方法
US10372908B2 (en) System and method for detecting malware in a stream of bytes
US8448151B2 (en) Method for binarizing initial script on operating system and operating method of binary script
CN110325994B (zh) 增强软件应用的控制流完整性的设备和方法
CN110941478B (zh) 文件扫描任务的执行方法、装置及计算设备
US20160364222A1 (en) Methods and systems for running modern applications in legacy software environments
RU94016U1 (ru) Система обнаружения обфусцированного кода вредоносного программного обеспечения
CN111381930A (zh) 虚拟机自动化部署的方法、装置及电子设备
CN107315951B (zh) 一种程序安装包反拦截方法及装置
EP3361406A1 (en) System and method of analysis of files for maliciousness in a virtual machine
KR101213651B1 (ko) 운영체제의 초기화 스크립트의 이진화 방법, 및 그 이진화 스크립트의 실행 방법
TWI846438B (zh) 前端框架提供方法及其系統
CN114217904A (zh) 一种多版本应用运行方法、计算设备及存储介质
KR20200041047A (ko) 핫 패칭 기술을 이용한 실행 파일 압축 방법 및 그 장치

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