本申请涉及计算机技术领域,特别是涉及一种程序对象扫描的方法和一种程序对象扫描的装置。
背景技术:
随着计算机技术的不断发展,互联网的应用也越来越广泛,互联网已经成为人们生活、学习和工作中不可或缺的一部分。但是在使用互联网的过程中,电子设备很容易受到病毒、恶意插件的侵害,设备一旦感染上病毒,很有可能导致系统中的一些重要程序对象的损坏、丢失,严重情况下还可能导致系统的瘫痪,从而给用户造成巨大的损失。为了避免终端受到病毒的侵害,保证用户可以安全的使用互联网,就需要经常对终端中的程序对象进行扫描,查杀系统潜在的病毒,排除恶意软件对系统的干扰。
目前的杀毒软件扫描病毒普遍采用的是全盘扫描的方式,即枚举待扫描系统中的程序对象,比如从C盘根目录枚举程序对象,枚举以后再逐个地传送给杀毒引擎,杀毒引擎在扫描病毒之后得出一个扫描结果。这种扫描方式虽然可以有效地查杀出病毒,但是由于采用的是枚举系统中的程序对象的方式,因此操作起来比较浪费时间,同时也过于消耗系统资源。此外,当扫描过程是在用户使用计算机的同时进行时,全盘扫描还会造成系统卡顿,严重影响用户的使用体验。因此,迫切需要有一种高效安全的程序对象的扫描方法,在保证终端使用安全的情况下,不仅可以精确地查杀病毒,还可以节约扫描时间和系统资源。
技术实现要素:
鉴于上述问题,提出了本申请以便提供一种克服上述问题或者至少部分地解决上述问题的一种程序对象扫描的方法和相应的一种程序对象扫描的装置。
依据本申请的一个方面,提供了一种程序对象扫描的方法,所述程序对象位于终端中,所述方法包括:
获取终端所发起行为的操作日志,所述操作日志中包括变更的日志;
提取所述变更的日志中记录的属性信息;
当接收到扫描终端中程序对象的指令时,针对所述指令采用所述属性信息定位到对应的程序对象;
对所述程序对象进行扫描。
可选地,所述变更的日志包括:当终端中的程序对象发生变更时生成的该程序对象的日志。
可选地,所述提取所述变更的日志中记录的属性信息的步骤包括:
提取所述变更的日志中记录的所述程序对象的属性信息。
可选地,所述变更包括:程序对象内容的变更,和/或,程序对象属性信息的变更;
可选地,在所述提取所述变更的日志中记录的属性信息的步骤后,还包括:
将所述属性信息存储至所述终端的指定位置。
可选地,所述将所述属性信息存储至所述终端的指定位置的步骤包括:
计算所述属性信息对应的特征值;
将所述特征值存储至所述终端的指定位置。
可选地,所述特征值为MD5值。
可选地,所述属性信息包括:所述程序对象的程序对象名称,以及,所述程序对象的存储位置。
可选地,所述当接收到扫描终端中程序对象的指令时,针对所述指令采用所述属性信息定位到对应的程序对象的步骤包括:
当接收到扫描终端中程序对象的指令时,从所述终端的指定位置读取所述特征值;
根据所述特征值,定位到对应的程序对象。
可选地,所述方法还包括:
在扫描完终端中程序对象后,清除在所述终端的指定位置存储的属性信息。
根据本申请的另一方面,提供了一种程序对象扫描的装置,所述程序对象位于终端中,所述装置包括:
获取模块,用于获取终端所发起行为的操作日志,所述操作日志中包括变更的日志;
提取模块,用于提取所述变更的日志中记录的属性信息;
定位模块,用于在接收到扫描终端中程序对象的指令时,针对所述指令采用所述属性信息定位到对应的程序对象;
扫描模块,用于对所述程序对象进行扫描。
可选地,所述变更的日志包括:当终端中的程序对象发生变更时生成的该程序对象的日志。
可选地,所述提取模块包括:
提取子模块,用于提取所述变更的日志中记录的所述程序对象的属性信息。
可选地,所述变更包括:程序对象内容的变更,和/或,程序对象属性信息的变更;
可选地,所述装置还包括:
存储模块,用于将所述属性信息存储至所述终端的指定位置。
可选地,所述存储模块包括:
计算子模块,用于计算所述属性信息对应的特征值;
存储子模块,用于将所述特征值存储至所述终端的指定位置。
可选地,所述特征值为MD5值。
可选地,所述属性信息包括:所述程序对象的程序对象名称,以及,所述程序对象的存储位置。
可选地,所述定位模块包括:
读取子模块,用于在接收到扫描终端中程序对象的指令时,从所述终端 的指定位置读取所述特征值;
定位子模块,用于根据所述特征值,定位到对应的程序对象。
可选地,所述装置还包括:
清除模块,用于在扫描完终端中程序对象后,清除在所述终端的指定位置存储的属性信息。
根据本申请的一种程序对象扫描的方法和装置可以从操作日志中提取出发生变更的程序对象的属性信息,从而能够在接收到扫描终端中程序对象的指令时,根据所述属性信息定位到对应的程序对象,使得在对终端中程序对象进行扫描时仅需要对发生了变更的程序对象进行扫描,无需对终端中的全部程序对象全盘扫描,避免了系统资源的过多消耗,节省了程序对象扫描的时间。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本申请一个实施例的一种程序对象扫描的方法步骤流程图;
图2示出了根据本申请一个实施例的一种程序对象扫描的方法步骤流程图;
图3示出了根据本申请一个实施例的一种程序对象扫描的装置结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
参照图1,示出了根据本申请一个实施例的一种程序对象扫描的方法步骤流程图,所述程序对象位于终端中,所述方法具体可以包括如下步骤:
步骤101,获取终端所发起行为的操作日志;
在本申请实施例中,终端中设置有操作日志,用于记录终端所发起的行为,终端所发起的行为可以包括对终端中各类程序对象所发起的行为。例如,对程序对象执行的操作,以及,程序对象的变更等。
所述操作日志中可以包括变更的日志。当终端中的程序对象发生变更时,在变更的日志中可以记录下发生变更的程序对象生成的日志记录。
因此,在本申请的一种优选实施例中,所述变更的日志可以包括当终端中的程序对象发生变更时生成的该程序对象的日志。
通常,导致程序对象发生变更的行为可以包括程序对象内容的变更,或者程序对象属性信息的变更。相应地,在发生变更的日志中也可以记录下所述程序对象的属性信息。
步骤102,提取所述变更的日志中记录的属性信息;
通常,程序对象的属性信息可以包括:所述程序对象的程序对象名称,以及,所述程序对象的存储位置等。
在本申请的一种优选实施例中,所述提取所述变更的日志中记录的属性信息具体可以包括如下子步骤:
子步骤1021,提取所述变更的日志中记录的所述程序对象的属性信息。
变更的日志中可以包括所述终端所发起的所有变更的记录,但根据程序对象的名称、存储位置、修改时间等,就能够定位到发生变更的程序对象,因此,在本申请实施例中,只需要从所述变更的日志中提取出所述程序对象的属性信息。
步骤103,将所述属性信息存储至所述终端的指定位置;
在本申请实施例中,在从变更的日志中提取出发生变更的程序对象的属性信息后,可以进一步将所述属性信息统一存储至所述终端的指定位置,从而可以在接收到扫描终端中程序对象的指令时,直接定位到所述位置就可以读取出所有发生了变更的程序对象的存储位置和程序对象名称,避免了需要分别从不同的位置读取多个程序对象的存储位置和程序对象名称的过程,减少了操作的次数。
在本申请的一种优选实施例中,所述将所述属性信息存储至所述终端的指定位置具体可以包括如下子步骤:
子步骤1031,计算所述属性信息对应的特征值;
子步骤1032,将所述特征值存储至所述终端的指定位置。
在具体实现中,当从变更的日志中提取出所述程序对象的属性信息后,可以计算出所述属性信息对应的特征值,然后将所述特征值存储至所述终端的指定位置。
在本申请实施例中,所述属性信息对应的特征值可以以MD5(Message-DigestAlgorithm 5,信息-摘要算法)值的方式来进行存储。
MD5值能够确保信息的传输完整一致,同时MD5值的压缩性很好,对于任意长度的数据,计算出的MD5值的长度都是固定的。其次,MD5值具有很高的抗修改性,可以精确到哪怕只修改了一个字符,MD5值都会有很大区别,因此,以MD5值存储所述属性信息可以保证属性信息的完整,避免因属性信息的改变从而无法准确地定位到所述程序对象。
步骤104,当接收到扫描终端中程序对象的指令时,针对所述指令采用所述属性信息定位到对应的程序对象;
在具体实现中,当接收到扫描终端中程序对象的指令时,针对所述指令,可以根据所述程序对象的程序对象名称,以及,所述程序对象的存储位置定位到对应的程序对象。
程序对象的存储位置可以帮助找到存储所述程序对象的具体地址,而程序对象名称则避免了对同一存储位置的其他程序对象的错误识别。因此,采用程序对象的程序对象名称,以及,程序对象的存储位置这两个属性信息, 可以准确地定位到对应的程序对象。
在本申请的一种优选实施例中,所述当接收到扫描终端中程序对象的指令时,针对所述指令采用所述属性信息定位到对应的程序对象具体可以包括如下子步骤:
子步骤1041,当接收到扫描终端中程序对象的指令时,从所述终端的指定位置读取所述特征值;
子步骤1042,根据所述特征值,定位到对应的程序对象。
在本申请实施例中,在存储了所述程序对象的属性信息后,当接收到扫描终端中程序对象的指令时,可以从所述终端的指定位置读取所述特征值。由于MD5值具有很高的抗修改性,因而可以根据MD5值反向计算出所述程序对象的程序对象名称以及存储位置,从而可以准确地定位到对应德程序对象。
步骤105,对所述程序对象进行扫描。
当定位到对应的程序对象后,则可以按照预设的规则对所述程序对象进行扫描。
在本申请实施例中,通过从变更的日志中提取出发生变更的程序对象的属性信息,然后以MD5值的方式将所述属性信息存储至终端的指定位置,从而可以在接收到扫描终端中程序对象的指令时,根据MD5值反向计算出所述属性信息,定位到对应的发生变更的程序对象,使得在对终端中程序对象进行扫描时仅需要对发生了变更的程序对象进行扫描,无需对终端中的全部程序对象全盘扫描,避免了系统资源的过多消耗,节省了程序对象扫描的时间。
参照图2,示出了根据本申请一个实施例的一种程序对象扫描的方法步骤流程图,所述程序对象位于终端中,所述方法具体可以包括如下步骤:
步骤201,获取终端所发起行为的操作日志;
在本申请实施例中,终端中设置有操作日志,用于记录终端所发起的行为,所述操作日志中可以包括变更的日志。当终端中的程序对象发生变更时, 在变更的日志中可以记录下发生变更的程序对象生成的日志记录。
步骤202,提取所述变更的日志中记录的所述程序对象的属性信息;
变更的日志中可以包括所述终端所发起的所有变更的记录,但根据程序对象的名称、存储位置、修改时间等,就能够定位到发生变更的程序对象,因此,在本申请实施例中,只需要从所述变更的日志中提取出所述程序对象的属性信息。
具体地,提取发生变更的日志中记录的程序对象的属性信息可以在变更的日志增加日志记录后立即进行,也可以按照预设的时间间隔,将一定时间段内发生变更的程序对象的属性信息一次性提取出来。
步骤203,计算所述属性信息对应的特征值;
在本申请实施例中,所述特征值可以是MD5值。
步骤204,将所述特征值存储至所述终端的指定位置。
在本申请实施例中,可以将所述特征值存储至所述终端的指定位置,从而能够在接收到扫描终端中程序对象的指令时,直接定位到所述位置就可以读取出所有发生了变更的程序对象的存储位置和程序对象名称,避免了需要分别从不同的位置读取多个程序对象的存储位置和程序对象名称的过程,减少了操作的次数。
步骤205,当接收到扫描终端中程序对象的指令时,针对所述指令采用所述属性信息定位到对应的程序对象;
在具体实现中,程序对象的存储位置可以帮助找到存储所述程序对象的具体地址,而程序对象名称则避免了对同一存储位置的其他程序对象的错误识别。因此,采用程序对象的程序对象名称,以及,程序对象的存储位置这两个属性信息,可以准确地定位到对应的程序对象。
步骤206,对所述程序对象进行扫描;
当定位到对应的程序对象后,则可以按照预设的规则对所述程序对象进行扫描。
步骤207,在扫描完终端中程序对象后,清除在所述终端的指定位置存储的属性信息。
在本申请实施例中,针对程序对象的扫描是根据在终端的指定位置存储的属性信息定位出发生变更的程序对象,因此,在每一次扫描完终端中程序对象后,还可以进一步清除在所述终端的指定位置存储的属性信息,避免在下一次扫描过程中对并未发生变更但在指定位置仍然存储有其属性信息的程序对象进行重复扫描。
在本申请实施例中,通过从变更的日志中提取出发生变更的程序对象的属性信息,然后将所述属性信息存储至终端的指定位置,从而可以在接收到扫描终端中程序对象的指令时,根据所述属性信息,定位到对应的发生变更的程序对象,使得在对终端中程序对象进行扫描时仅需要对发生了变更的程序对象进行扫描;同时,在扫描结束后,清除了在所述终端的指定位置存储的属性信息,也避免了在下一次的扫描过程中对未发生变更的程序对象的重复扫描,进一步节约了程序对象扫描的时间。
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图3,示出了根据本申请一个实施例的一种程序对象扫描的装置结构框图,所述程序对象位于终端中,所述装置具体可以包括如下模块:
获取模块301,用于获取终端所发起行为的操作日志,所述操作日志中包括变更的日志;
提取模块302,用于提取所述变更的日志中记录的属性信息;
定位模块303,用于在接收到扫描终端中程序对象的指令时,针对所述指令采用所述属性信息定位到对应的程序对象;
扫描模块304,用于对所述程序对象进行扫描。
在本申请的实施例中,所述变更的日志可以包括:当终端中的程序对象 发生变更时生成的该程序对象的日志。
在本申请的实施例中,所述提取模块302具体可以包括如下子模块:
提取子模块3021,用于提取所述变更的日志中记录的所述程序对象的属性信息。
在本申请的实施例中,所述变更可以包括:程序对象内容的变更,和/或,程序对象属性信息的变更;
在本申请的实施例中,所述装置还可以包括如下模块:
存储模块305,用于将所述属性信息存储至所述终端的指定位置。
在本申请的实施例中,所述存储模块305具体可以包括如下子模块:
计算子模块3051,用于计算所述属性信息对应的特征值;
存储子模块3052,用于将所述特征值存储至所述终端的指定位置。
在本申请的实施例中,所述特征值可以为MD5值。
在本申请的实施例中,所述属性信息可以包括:所述程序对象的程序对象名称,以及,所述程序对象的存储位置。
在本申请的实施例中,所述定位模块303具体可以包括如下子模块:
读取子模块3031,用于在接收到扫描终端中程序对象的指令时,从所述终端的指定位置读取所述特征值;
定位子模块3032,用于根据所述特征值,定位到对应的程序对象。
在本申请的实施例中,所述装置还可以包括如下模块:
清除模块306,用于在扫描完终端中程序对象后,清除在所述终端的指定位置存储的属性信息。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本申请也不针对任何特定 编程语言。应当明白,可以利用各种编程语言实现在此描述的本申请的内容,并且上面对特定语言所做的描述是为了披露本申请的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本申请的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本申请的示例性实施例的描述中,本申请的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本申请要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本申请的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本申请的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本申请的各个部件实施例可以以硬件实现,或者以在一个或者多个处理 器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本申请实施例的程序对象扫描的方法和装置中的一些或者全部部件的一些或者全部功能。本申请还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本申请的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本申请进行说明而不是对本申请进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本申请可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本申请公开了A1、一种程序对象扫描的方法,所述程序对象位于终端中,所述方法包括:
获取终端所发起行为的操作日志,所述操作日志中包括变更的日志;
提取所述变更的日志中记录的属性信息;
当接收到扫描终端中程序对象的指令时,针对所述指令采用所述属性信息定位到对应的程序对象;
对所述程序对象进行扫描。
A2、如A1所述的方法,所述变更的日志包括:当终端中的程序对象发生变更时生成的该程序对象的日志。
A3、如A2所述的方法,所述提取所述变更的日志中记录的属性信息的 步骤包括:
提取所述变更的日志中记录的所述程序对象的属性信息。
A4、如A1-A3任一所述的方法,所述变更包括:程序对象内容的变更,和/或,程序对象属性信息的变更;
A5、如A4所述的方法,在所述提取所述变更的日志中记录的属性信息的步骤后,还包括:
将所述属性信息存储至所述终端的指定位置。
A6、如A5所述的方法,所述将所述属性信息存储至所述终端的指定位置的步骤包括:
计算所述属性信息对应的特征值;
将所述特征值存储至所述终端的指定位置。
A7、如A6所述的方法,所述特征值为MD5值。
A8、如A1-A7任一所述的方法,所述属性信息包括:所述程序对象的程序对象名称,以及,所述程序对象的存储位置。
A9、如A8所述的方法,所述当接收到扫描终端中程序对象的指令时,针对所述指令采用所述属性信息定位到对应的程序对象的步骤包括:
当接收到扫描终端中程序对象的指令时,从所述终端的指定位置读取所述特征值;
根据所述特征值,定位到对应的程序对象。
A10、如A1-A9任一所述的方法,还包括:
在扫描完终端中程序对象后,清除在所述终端的指定位置存储的属性信息。
本申请还公开了B11、一种程序对象扫描的装置,所述程序对象位于终端中,所述装置包括:
获取模块,用于获取终端所发起行为的操作日志,所述操作日志中包括变更的日志;
提取模块,用于提取所述变更的日志中记录的属性信息;
定位模块,用于在接收到扫描终端中程序对象的指令时,针对所述指令采用所述属性信息定位到对应的程序对象;
扫描模块,用于对所述程序对象进行扫描。
B12、如B11所述的装置,所述变更的日志包括:当终端中的程序对象发生变更时生成的该程序对象的日志。
B13、如B12所述的装置,所述提取模块包括:
提取子模块,用于提取所述变更的日志中记录的所述程序对象的属性信息。
B14、如B11-B13任一所述的装置,所述变更包括:程序对象内容的变更,和/或,程序对象属性信息的变更;
B15、如B14所述的装置,还包括:
存储模块,用于将所述属性信息存储至所述终端的指定位置。
B16、如B15所述的装置,所述存储模块包括:
计算子模块,用于计算所述属性信息对应的特征值;
存储子模块,用于将所述特征值存储至所述终端的指定位置。
B17、如B16所述的装置,所述特征值为MD5值。
B18、如B11-B17任一所述的装置,所述属性信息包括:所述程序对象的程序对象名称,以及,所述程序对象的存储位置。
B19、如B18所述的装置,所述定位模块包括:
读取子模块,用于在接收到扫描终端中程序对象的指令时,从所述终端的指定位置读取所述特征值;
定位子模块,用于根据所述特征值,定位到对应的程序对象。
B20、如B11-B19任一所述的装置,还包括:
清除模块,用于在扫描完终端中程序对象后,清除在所述终端的指定位置存储的属性信息。