CN115062305A - 一种基于luajit的病毒感染处理方法及装置 - Google Patents
一种基于luajit的病毒感染处理方法及装置 Download PDFInfo
- Publication number
- CN115062305A CN115062305A CN202210743444.9A CN202210743444A CN115062305A CN 115062305 A CN115062305 A CN 115062305A CN 202210743444 A CN202210743444 A CN 202210743444A CN 115062305 A CN115062305 A CN 115062305A
- Authority
- CN
- China
- Prior art keywords
- virus
- library
- repair
- file
- sub
- 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.)
- Pending
Links
Images
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/563—Static detection by source code analysis
-
- 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/568—Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
Abstract
本发明实施例公开一种基于luajit的病毒感染处理方法及装置,涉及计算机技术领域,能够有效简化病毒查杀服务的维护。所述方法包括:根据目标文件的文件特征信息以及预设病毒处理库中的病毒特征信息,确定所述目标文件是否为病毒关联文件,所述病毒关联文件包括病毒文件和/或被病毒感染的文件,所述预设病毒处理库基于luajit语言建立;响应于所述目标文件为所述病毒关联文件,从所述预设病毒处理库中获取所述病毒关联文件对应的病毒标识;根据所述病毒标识检测所述预设病毒处理库中是否存在与所述病毒标识对应的修复脚本字节码;根据检测结果对所述目标文件进行处理。本发明可用于病毒查杀服务中。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于luajit的病毒感染处理方法及装置。
背景技术
随着科技和网络技术的发展,计算机病毒的种类也越来越多并不断升级,非法截取军事和商业机密、个人隐私等。为了维护网络安全,病毒查杀服务应运而生,但面对庞大的病毒体系和飞快的更新速度,病毒查杀处理服务的维护却越来越困难。
发明内容
有鉴于此,本发明实施例提供一种基于luajit的病毒感染处理方法、装置、电子设备及存储介质,能够有效简化病毒查杀服务的维护。
第一方面,本发明实施例提供一种基于luajit的病毒感染处理方法,包括:根据目标文件的文件特征信息以及预设病毒处理库中的病毒特征信息,确定所述目标文件是否为病毒关联文件,所述病毒关联文件包括病毒文件和/或被病毒感染的文件,所述预设病毒处理库基于luajit语言建立;响应于所述目标文件为所述病毒关联文件,从所述预设病毒处理库中获取所述病毒关联文件对应的病毒标识;根据所述病毒标识检测所述预设病毒处理库中是否存在与所述病毒标识对应的修复脚本字节码;根据检测结果对所述目标文件进行处理。
在一种实施方式中,所述病毒标识包括子库标识位和库内索引位,所述子库标识位包括标志位、时间戳位、进程标识位。
在一种实施方式中,所述根据所述病毒标识检测所述预设病毒处理库中是否存在对应的修复脚本字节码包括:根据所述病毒标识中的所述标志位,检测所述预设病毒处理库中是否存在与所述病毒标识对应的修复脚本字节码。
在一种实施方式中,所述根据目标文件的文件特征信息以及预设病毒处理库中的病毒特征信息,确定所述目标文件是否为病毒关联文件包括:将所述目标文件的文件特征信息与所述预设病毒处理库的扫描子库中的各病毒特征信息相比对;在所述文件特征信息与其中任一病毒特征信息的相似度大于预设阈值的情况下,确定所述任一病毒特征信息为目标病毒,确定所述目标文件为病毒关联文件。
在一种实施方式中,所述根据检测结果对所述目标文件进行处理包括:在所述检测结果为所述预设病毒处理库中存在与所述病毒标识对应的修复脚本字节码的情况下,根据所述病毒标识,在所述预设病毒处理库的修复子库中查找与所述病毒标识对应的修复脚本字节码;利用所述修复脚本字节码修复所述目标文件;或者,在所述检测结果为所述预设病毒处理库中不存在与所述病毒标识对应的修复脚本字节码的情况下,删除所述目标文件。
在一种实施方式中,所述根据目标文件的文件特征信息以及预设病毒处理库中的病毒特征信息,确定所述目标文件是否为病毒关联文件之前,所述方法还包括:基于luajit语言构建所述预设病毒处理库,所述预设病毒处理库包括扫描子库和修复子库,其中,所述扫描子库中设置有用于检测目标文件是否为所述病毒关联文件的检测脚本字节码,所述修复子库中设置有用于修复所述病毒关联文件的修复脚本字节码;查杀同一病毒所用的所述检测脚本字节码与所述修复脚本字节码,对应同一所述病毒标识。
在一种实施方式中,构建所述修复子库包括:分别获取各病毒对应的修复脚本;将各所述修复脚本分别由明文转化为字节码,得到对应的修复脚本字节码;按照第一封装规则,对各所述修复脚本字节码进行封装,得到所述修复子库,所述修复子库包括头部、代码区和代码索引表,其中,所述头部用于描述所述修复子库的属性信息,所述代码区用于承载各所述修复脚本字节码,所述代码索引表用于指示每个所述修复脚本字节码在所述修复子库中的偏移地址。
在一种实施方式中,所述头部包括所述修复子库的版本信息、所述修复子库的标识信息、所述修复子库的校验信息、所述代码索引表在所述修复子库中的偏移地址。
在一种实施方式中,所述根据检测结果对所述目标文件进行处理包括:在所述检测结果为所述预设病毒处理库中存在与所述病毒标识对应的修复脚本字节码的情况下,在所述修复子库的头部,查找所述代码索引表在所述修复子库中的偏移地址;根据所述代码索引表在所述修复子库中的偏移地址,定位所述代码索引表;根据所述病毒标识,在所述代码索引表中查询所述病毒标识对应的修复脚本字节码在所述修复子库中的偏移地址;根据所述修复脚本字节码在所述修复子库中的偏移地址,从所述修复子库的所述代码区获取所述修复脚本字节码;利用所述修复脚本字节码修复所述目标文件。
在一种实施方式中,所述代码索引表位于所述修复子库的最后位置;所述方法还包括:接收代码调整指令,所述代码调整指令用于指示删除所述代码区中的第一修复脚本字节码;根据所述代码调整指令,在所述代码索引表中,对所述第一修复脚本字节码对应的索引进行失效指示。
在一种实施方式中,所述方法还包括:根据所述预设病毒处理库中各病毒标识中的时间戳位获取各病毒的最近检出时刻;根据所述最近检出时刻,将所述修复子库中的至少一部分病毒标识对应的修复脚本字节码加载到缓存中;根据各病毒对应的最近检出时刻的变化,对缓存进行动态更新。
在一种实施方式中,构建所述扫描子库包括:分别获取各病毒对应的检测脚本;将各所述检测脚本分别由明文转化为字节码,得到对应的检测脚本字节码;按照第二封装规则,对各所述检测脚本字节码进行封装,得到所述扫描子库,所述扫描子库包括头部、代码区和代码索引表,其中,所述头部用于描述所述扫描子库的属性信息,所述代码区用于承载各所述检测脚本字节码,所述代码索引表用于指示每个所述检测脚本字节码在所述扫描子库中的偏移地址。
第二方面,本发明的实施例还提供一种基于luajit的病毒感染处理装置,包括:确定单元,用于根据目标文件的文件特征信息以及预设病毒处理库中的病毒特征信息,确定所述目标文件是否为病毒关联文件,所述病毒关联文件包括病毒文件和/或被病毒感染的文件,所述预设病毒处理库基于luajit语言建立;第一获取单元,用于响应于所述目标文件为所述病毒关联文件,从所述预设病毒处理库中获取所述病毒关联文件对应的病毒标识;检测单元,用于根据所述病毒标识检测所述预设病毒处理库中是否存在与所述病毒标识对应的修复脚本字节码;处理单元,用于根据检测结果对所述目标文件进行处理。
在一种实施方式中,所述病毒标识包括子库标识位和库内索引位,所述子库标识位包括标志位、时间戳位、进程标识位。
在一种实施方式中,所述检测单元,具体用于根据所述病毒标识中的所述标志位,检测所述预设病毒处理库中是否存在与所述病毒标识对应的修复脚本字节码。
在一种实施方式中,所述确定单元包括:比对模块,用于将所述目标文件的文件特征信息与所述预设病毒处理库的扫描子库中的各病毒特征信息相比对;确定模块,用于在所述文件特征信息与其中任一病毒特征信息的相似度大于预设阈值的情况下,确定所述任一病毒特征信息为目标病毒,确定所述目标文件为病毒关联文件。
在一种实施方式中,所述处理单元具体用于:在所述检测结果为所述预设病毒处理库中存在与所述病毒标识对应的修复脚本字节码的情况下,根据所述病毒标识,在所述预设病毒处理库的修复子库中查找与所述病毒标识对应的修复脚本字节码;利用所述修复脚本字节码修复所述目标文件;或者,在所述检测结果为所述预设病毒处理库中不存在与所述病毒标识对应的修复脚本字节码的情况下,删除所述目标文件。
在一种实施方式中,所述装置还包括构建单元,用于在根据目标文件的文件特征信息以及预设病毒处理库中的病毒特征信息,确定所述目标文件是否为病毒关联文件之前,基于luajit语言构建所述预设病毒处理库,所述预设病毒处理库包括扫描子库和修复子库,其中,所述扫描子库中设置有用于检测目标文件是否为所述病毒关联文件的检测脚本字节码,所述修复子库中设置有用于修复所述病毒关联文件的修复脚本字节码;查杀同一病毒所用的所述检测脚本字节码与所述修复脚本字节码,对应同一所述病毒标识。
在一种实施方式中,所述构建单元包括:第一获取模块,用于分别获取各病毒对应的修复脚本;第一转化模块,用于将各所述修复脚本分别由明文转化为字节码,得到对应的修复脚本字节码;第一封装模块,用于按照第一封装规则,对各所述修复脚本字节码进行封装,得到所述修复子库,所述修复子库包括头部、代码区和代码索引表,其中,所述头部用于描述所述修复子库的属性信息,所述代码区用于承载各所述修复脚本字节码,所述代码索引表用于指示每个所述修复脚本字节码在所述修复子库中的偏移地址。
在一种实施方式中,所述头部包括所述修复子库的版本信息、所述修复子库的标识信息、所述修复子库的校验信息、所述代码索引表在所述修复子库中的偏移地址。
在一种实施方式中,所述处理单元包括:查找模块,用于在所述检测结果为所述预设病毒处理库中存在与所述病毒标识对应的修复脚本字节码的情况下,在所述修复子库的头部,查找所述代码索引表在所述修复子库中的偏移地址;定位模块,用于根据所述代码索引表在所述修复子库中的偏移地址,定位所述代码索引表;查询模块,用于根据所述病毒标识,在所述代码索引表中查询所述病毒标识对应的修复脚本字节码在所述修复子库中的偏移地址;第二获取模块,用于根据所述修复脚本字节码在所述修复子库中的偏移地址,从所述修复子库的所述代码区获取所述修复脚本字节码;修复模块,用于利用所述修复脚本字节码修复所述目标文件。
在一种实施方式中,所述代码索引表位于所述修复子库的最后位置;所述装置还包括:接收单元,用于接收代码调整指令,所述代码调整指令用于指示删除所述代码区中的第一修复脚本字节码;指示单元,用于根据所述代码调整指令,在所述代码索引表中,对所述第一修复脚本字节码对应的索引进行失效指示。
在一种实施方式中,所述装置还包括:第二获取单元,用于根据所述预设病毒处理库中各病毒标识中的时间戳位获取各病毒的最近检出时刻;加载单元,用于根据所述最近检出时刻,将所述修复子库中的至少一部分病毒标识对应的修复脚本字节码加载到缓存中;缓存更新单元,用于根据各病毒对应的最近检出时刻的变化,对缓存进行动态更新。
在一种实施方式中,所述构建单元包括:第三获取模块,用于分别获取各病毒对应的检测脚本;第二转化模块,用于将各所述检测脚本分别由明文转化为字节码,得到对应的检测脚本字节码;第二封装模块,用于按照第二封装规则,对各所述检测脚本字节码进行封装,得到所述扫描子库,所述扫描子库包括头部、代码区和代码索引表,其中,所述头部用于描述所述扫描子库的属性信息,所述代码区用于承载各所述检测脚本字节码,所述代码索引表用于指示每个所述检测脚本字节码在所述扫描子库中的偏移地址。
第三方面,本发明的实施例还提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行本发明的实施例提供的任一种基于luajit的病毒感染处理方法。
第四方面,本发明的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现本发明的实施例提供的任一种基于luajit的病毒感染处理方法。
本发明的实施例提供的基于luajit的病毒感染处理方法、装置、电子设备及存储介质,能够能够根据目标文件的文件特征信息以及预设病毒处理库中的病毒特征信息,确定所述目标文件是否为病毒关联文件,响应于所述目标文件为所述病毒关联文件,从所述预设病毒处理库中获取所述病毒关联文件对应的病毒标识,根据所述病毒标识检测所述预设病毒处理库中是否存在与所述病毒标识对应的修复脚本字节码,根据检测结果对所述目标文件进行处理。这样,由于预设病毒处理库基于luajit语言建立,因此具有较强的灵活性,又由于在预设病毒处理库中通过病毒标识将病毒扫描与病毒处理巧妙结合,因此具有较强的系统性,能够有效避免病毒扫描与病毒处理之间出现混乱、繁冗或重复的关系,因此有效简化了病毒查杀服务的维护。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明的实施例提供的基于luajit的病毒感染处理方法的一种流程图;
图2为本发明的实施例中病毒标识的一种结构示意图;
图3为本发明的实施例中修复子库的一种结构示意图;
图4为本发明的实施例提供的基于luajit的病毒感染处理方法的一种详细流程图;
图5为本发明的实施例提供的基于luajit的病毒感染处理装置的一种结构示意图;
图6为本发明的实施例提供的电子设备的一种结构示意图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
第一方面,本发明的实施例提供一种基于luajit的病毒感染处理方法,能够利用luajit语言,通过病毒标识将病毒扫描和病毒处理巧妙结合,有效简化了病毒查杀服务的维护。
如图1所示,本发明的实施例提供的一种基于luajit的病毒感染处理方法可以包括:
S11,根据目标文件的文件特征信息以及预设病毒处理库中的病毒特征信息,确定所述目标文件是否为病毒关联文件,所述病毒关联文件包括病毒文件和/或被病毒感染的文件,所述预设病毒处理库基于luajit语言建立;
目标文件可以指需要进行病毒扫描的文件。预设病毒处理库可以指提供病毒查杀服务的系统。预设病毒处理库中可以预先存储有多种病毒对应的特征,这些病毒的特征例如可以以病毒标识--病毒特征的形式存储。在进行病毒扫描时,可以提取目标文件的文件特征信息,并将该文件特征信息与预设病毒处理库中的各种病毒特征信息逐一比对,以便确定目标文件是否为病毒关联文件。其中,病毒关联文件即可以指病毒文件本身,也可以指被病毒感染的文件。
lua是为了嵌入其它应用程序而开发的一个脚本语言,luajit是lua的一个Just-In-Time(运行时编译),也可以说是lua的一个高效版。
S12,响应于所述目标文件为所述病毒关联文件,从所述预设病毒处理库中获取所述病毒关联文件对应的病毒标识;
如果经过步骤S11对目标文件的病毒扫描,确定该目标文件为病毒关联文件,则可以根据扫描结果,从预设病毒处理库中获取病毒关联文件对应的病毒标识。可选的,病毒标识可以由字母、数字、符号中的一种或多种组合而成。不同的病毒对应不同的病毒标识,同一种病毒对应相同的病毒标识。
S13,根据所述病毒标识检测所述预设病毒处理库中是否存在与所述病毒标识对应的修复脚本字节码;
本发明的一个实施例中,病毒标识除了能够对病毒进行标识之外,还能够指示病毒在所述预设病毒处理库中的状态。例如,病毒标识可以指示在所述预设病毒处理库中是否存在能够对该病毒进行修复的修复脚本字节码。
S14,根据检测结果对所述目标文件进行处理。
可选的,步骤S13中的检测结果可能是预设病毒处理库中存在与所述病毒标识对应的修复脚本字节码,也可能是预设病毒处理库中不存在与所述病毒标识对应的修复脚本字节码,根据不同的检测结果,可以对目标文件进行不同的处理。
本发明的实施例提供的基于luajit的病毒感染处理方法,能够根据目标文件的文件特征信息以及预设病毒处理库中的病毒特征信息,确定所述目标文件是否为病毒关联文件,响应于所述目标文件为所述病毒关联文件,从所述预设病毒处理库中获取所述病毒关联文件对应的病毒标识,根据所述病毒标识检测所述预设病毒处理库中是否存在与所述病毒标识对应的修复脚本字节码,根据检测结果对所述目标文件进行处理。这样,由于预设病毒处理库基于luajit语言建立,因此具有较强的灵活性,又由于在预设病毒处理库中通过病毒标识将病毒扫描与病毒处理巧妙结合,因此具有较强的系统性,能够有效避免病毒扫描与病毒处理之间出现混乱、繁冗或重复的关系,因此有效简化了病毒查杀服务的维护。
可选的,本发明的实施例中,根据预设病毒处理库所执行的具体处理操作的不同,可以将病毒处理库分为不同的子库。例如,在本发明的一个实施例中,可以将预设病毒处理库中执行病毒扫描操作的部分划分为扫描子库,将执行文件修复操作的部分划分为修复子库。为了在预设病毒处理库中对每种病毒进行清楚便利的标识,在本发明的一个实施例中,病毒标识可以包括多个标识位,其中一部分可以为子库标识位,另一部分可以为库内索引位。
为了在病毒标识中体现更多的信息,在本发明的一个实施例中,子库标识位又可以包括标志位、时间戳位、进程标识位等。其中,标志位可以用于表示预设病毒处理库中是否存在病毒标识对应的修复脚本字节码,例如,当标志位为0时,表示预设病毒处理库中不存在病毒标识对应的修复脚本字节码,当标志位为1时,表示预设病毒处理库中存在病毒标识对应的修复脚本字节码。时间戳位可以表示该病毒的最近检出时刻,进程标识位可以表示该病毒出现在哪个进程中。可选的,当有多台终端设备中都设置有预设病毒处理库时,为了对不同设备中的预设病毒处理库进行区分,在本发明的一个实施例中,子库标识位还可以包括机器标识位。示例性的,一种病毒标识VID的格式可以如图2所示。
具体而言,在本发明的一个实施例中,步骤S11根据目标文件的文件特征信息以及预设病毒处理库中的病毒特征信息,确定所述目标文件是否为病毒关联文件可以包括:将所述目标文件的文件特征信息与所述预设病毒处理库的扫描子库中的各病毒特征信息相比对;在所述文件特征信息与其中任一病毒特征信息的相似度大于预设阈值的情况下,确定所述任一病毒特征信息为目标病毒,确定所述目标文件为病毒关联文件。例如,目标文件file1的文件特征信息与预设病毒处理库中病毒标识VID298的病毒特征信息的相似度大于预设阈值95%,则确定VID298为目标病毒,目标文件file1为病毒关联文件。基于此,在步骤S12中,响应于目标文件为所述病毒关联文件,可以从预设病毒处理库中获取病毒关联文件对应的病毒标识,例如获取病毒标识VID298=1101010011101111011。获取病毒关联文件对应的病毒标识之后,就可以在步骤S13中根据所述病毒标识检测所述预设病毒处理库中是否存在对应的修复脚本字节码。具体实施中,可以根据所述病毒标识中的标志位,检测所述预设病毒处理库中是否存在与所述病毒标识对应的修复脚本字节码。
步骤S13的检测结果可能是预设病毒处理库中存在与病毒标识对应的修复脚本字节码,也可能是预设病毒处理库中不存在与病毒标识对应的修复脚本字节码,基于此,在步骤S14中,可以根据不同的检测结果对目标文件进行不同的处理。具体而言,在所述检测结果为所述预设病毒处理库中存在与所述病毒标识对应的修复脚本字节码的情况下,可以根据所述病毒标识,在所述预设病毒处理库的修复子库中查找与所述病毒标识对应的修复脚本字节码;利用所述修复脚本字节码修复所述目标文件,从而得到没有被病毒感染的文件。或者,在所述检测结果为所述预设病毒处理库中不存在与所述病毒标识对应的修复脚本字节码的情况下,可以删除所述目标文件,从而达到清除病毒的目的。
进一步地,为了能够利用预设病毒处理库进行病毒查杀服务,在本发明的一个实施例中,在步骤S11根据目标文件的文件特征信息以及预设病毒处理库中的病毒特征信息,确定所述目标文件是否为病毒关联文件之前,本发明的实施例提供的基于luajit的病毒感染处理方法还可以包括:基于luajit语言构建所述预设病毒处理库,所述预设病毒处理库包括扫描子库和修复子库,其中,所述扫描子库中设置有用于检测目标文件是否为所述病毒关联文件的检测脚本字节码,所述修复子库中设置有用于修复所述病毒关联文件的修复脚本字节码;查杀同一病毒所用的所述检测脚本字节码与所述修复脚本字节码,对应同一所述病毒标识。可以根据病毒标识,在扫描子库或修复子库中找到对应的扫描脚本字节码或者修复脚本字节码。具体而言,若病毒标识的标志位为0,则表示修复子库中不存在该病毒标识对应的修复脚本字节码,此时库内索引仅为扫描库内的索引,因此可以根据库内索引在扫描子库中获取对应的扫描脚本字节码;若病毒标识的标志位为1,则表示修复子库中存在该病毒标识对应的修复脚本字节码,此时库内索引为扫描子库和修复子库的共同索引,因此,可以根据该库内索引,分别在扫描子库中获取扫描脚本字节码,在修复子库中获取修复脚本字节码。
为了构建该预设病毒处理库,在本发明的一个实施例中,可以分别构建修复子库和扫描子库。
其中,构建修复子库具体可以包括:分别获取各病毒对应的修复脚本;将各所述修复脚本分别由明文转化为字节码,得到对应的修复脚本字节码;按照第一封装规则,对各所述修复脚本字节码进行封装,得到所述修复子库,所述修复子库包括头部、代码区和代码索引表,其中,所述头部可以用于描述所述修复子库的属性信息,所述代码区可以用于承载各所述修复脚本字节码,所述代码索引表可以用于指示每个所述修复脚本字节码在所述修复子库中的偏移地址。可选的,在本发明的一个实施例中,头部具体可以包括修复子库的版本信息、修复子库的标识信息、修复子库的校验信息、代码索引表在修复子库中的偏移地址等信息。示例性的,修复子库的一种数据结构可以如图3所示。在图3所示的实施例中,头部以及代码区中的每段代码(LP-codeN)分别对应有各自的校验信息,其中,头部的校验信息可以用于校验修复子库是否出现错误,每段代码对应的校验信息可以用于校验对应的代码是否出现错误。
基于修复子库的上述数据结构,在本发明的一个实施例中,步骤S14中根据检测结果对所述目标文件进行处理具体可以包括:在所述检测结果为所述预设病毒处理库中存在与所述病毒标识对应的修复脚本字节码的情况下,在所述修复子库的头部,查找所述代码索引表在所述修复子库中的偏移地址;根据所述代码索引表在所述修复子库中的偏移地址,定位所述代码索引表;根据所述病毒标识,在所述代码索引表中查询所述病毒标识对应的修复脚本字节码在所述修复子库中的偏移地址,具体的,可以根据病毒标识中的库内索引位在代码索引表中查询对应的修复脚本字节码在修复子库中的偏移地址;根据所述修复脚本字节码在所述修复子库中的偏移地址,从所述修复子库的所述代码区获取所述修复脚本字节码;利用所述修复脚本字节码修复所述目标文件。这样,就能够基于修复子库的数据结构,快速查找到病毒对应的修复脚本代码,以便对目标文件进行修复。
可选的,本发明的实施例中,修复子库的头部可以位于修复子库的开始位置,其后跟随代码区和代码索引表。代码区和代码索引表的前后位置不限。但在本发明的一个实施例中,为了尽量减少代码修改带来的修复子库读写操作,代码索引表可以位于修复子库的最后位置;基于此,本发明的实施例提供的基于luajit的病毒感染处理方法还可以包括:接收代码调整指令,所述代码调整指令用于指示删除所述代码区中的第一修复脚本字节码;根据所述代码调整指令,在所述代码索引表中,对所述第一修复脚本字节码对应的索引进行失效指示。其中,第一修复脚本字节码可以为代码区中的任一修复脚本字节码。这样,当需要对代码区中的任一修复脚本字节码进行删除时,只需要在位于修复子库最后位置的代码索引表进行对应的标记即可,而无需对中间位置的代码区进行任何读写操作,也避免了中间位置的代码删除后对后部代码的进一步调整,因此,进一步简化了病毒查杀的维护。
为了提高对目标文件的病毒查杀速度,在本发明的一个实施例中,可以将预设病毒处理库中的部分内容加载到缓存中。为了提高缓存命中率,本发明的实施例提供的基于luajit的病毒感染处理方法还可以包括:根据所述预设病毒处理库中各病毒标识中的时间戳位获取各病毒的最近检出时刻;根据所述最近检出时刻,将所述修复子库中的至少一部分病毒标识对应的修复脚本字节码加载到缓存中;根据各病毒对应的最近检出时刻的变化,对缓存进行动态更新。这样就可以根据最近检出时刻,将最近最常用的修复脚本字节码加载到缓存中,从而有效提高了病毒查杀效率。
以上对修复子库的构建及维护进行了详细说明。与修复子库的构建类似,在本发明的一个实施例中,构建扫描子库具体可以包括:分别获取各病毒对应的检测脚本;将各所述检测脚本分别由明文转化为字节码,得到对应的检测脚本字节码;按照第二封装规则,对各所述检测脚本字节码进行封装,得到所述扫描子库,所述扫描子库包括头部、代码区和代码索引表,其中,所述头部用于描述所述扫描子库的属性信息,所述代码区用于承载各所述检测脚本字节码,所述代码索引表用于指示每个所述检测脚本字节码在所述扫描子库中的偏移地址。扫描子库的维护,可以基于与修复子库的维护类似的原理进行,此处不再赘述。
下面通过一个具体的实施例对本发明的实施例提供的基于luajit的病毒感染处理方法进行详细说明。
如图4所示,本发明的实施例提供的基于luajit的病毒感染处理方法可以包括:
S201、基于luajit语言构建预设病毒处理库,所述预设病毒处理库包括扫描子库和修复子库。
其中,所述扫描子库中设置有用于检测目标文件是否为所述病毒关联文件的检测脚本字节码,所述修复子库中设置有用于修复所述病毒关联文件的修复脚本字节码;查杀同一病毒所用的所述检测脚本字节码与所述修复脚本字节码,对应同一所述病毒标识。
S202、将目标文件的文件特征信息与预设病毒处理库的扫描子库中的各病毒特征信息相比对。
S203、在文件特征信息与其中任一病毒特征信息的相似度大于预设阈值的情况下,确定所述任一病毒特征信息为目标病毒,确定目标文件为病毒关联文件。
S204、响应于目标文件为病毒关联文件,从所述预设病毒处理库中获取所述病毒关联文件对应的病毒标识。
例如,病毒标识VID3=101000111011111110。
S205、根据所述病毒标识中的标志位,检测所述预设病毒处理库中是否存在与所述病毒标识对应的修复脚本字节码。
由于VID3的第一位为1,即标志位为1,则确定预设病毒处理库中存在与病毒标识VID3对应的修复脚本字节码。
S206、在检测结果为预设病毒处理库中存在与病毒标识对应的修复脚本字节码的情况下,在修复子库的头部,查找代码索引表在修复子库中的偏移地址。
S207、根据代码索引表在修复子库中的偏移地址,定位代码索引表。
S208、根据病毒标识,在代码索引表中查询所述病毒标识对应的修复脚本字节码在修复子库中的偏移地址。
S209、根据修复脚本字节码在修复子库中的偏移地址,从修复子库的代码区获取修复脚本字节码。
S210、利用修复脚本字节码修复目标文件。
第二方面,本发明的实施例提供一种基于luajit的病毒感染处理装置,能够利用luajit语言,通过病毒标识将病毒扫描和病毒处理巧妙结合,有效简化了病毒查杀服务的维护。
如图5所示,本发明的实施例提供的基于luajit的病毒感染处理装置可以包括:
确定单元31,用于根据目标文件的文件特征信息以及预设病毒处理库中的病毒特征信息,确定所述目标文件是否为病毒关联文件,所述病毒关联文件包括病毒文件和/或被病毒感染的文件,所述预设病毒处理库基于luajit语言建立;
第一获取单元32,用于响应于所述目标文件为所述病毒关联文件,从所述预设病毒处理库中获取所述病毒关联文件对应的病毒标识;
检测单元33,用于根据所述病毒标识检测所述预设病毒处理库中是否存在与所述病毒标识对应的修复脚本字节码;
处理单元34,用于根据检测结果对所述目标文件进行处理。
本发明的实施例提供的基于luajit的病毒感染处理装置,能够根据目标文件的文件特征信息以及预设病毒处理库中的病毒特征信息,确定所述目标文件是否为病毒关联文件,响应于所述目标文件为所述病毒关联文件,从所述预设病毒处理库中获取所述病毒关联文件对应的病毒标识,根据所述病毒标识检测所述预设病毒处理库中是否存在与所述病毒标识对应的修复脚本字节码,根据检测结果对所述目标文件进行处理。这样,由于预设病毒处理库基于luajit语言建立,因此具有较强的灵活性,又由于在预设病毒处理库中通过病毒标识将病毒扫描与病毒处理巧妙结合,因此具有较强的系统性,能够有效避免病毒扫描与病毒处理之间出现混乱、繁冗或重复的关系,因此有效简化了病毒查杀服务的维护。
在一种实施方式中,所述病毒标识可以包括子库标识位和库内索引位,所述子库标识位包括标志位、时间戳位、进程标识位。
在一种实施方式中,检测单元33,具体可以用于根据所述病毒标识中的所述标志位,检测所述预设病毒处理库中是否存在与所述病毒标识对应的修复脚本字节码。
在一种实施方式中,确定单元31可以包括:
比对模块,用于将所述目标文件的文件特征信息与所述预设病毒处理库的扫描子库中的各病毒特征信息相比对;
确定模块,用于在所述文件特征信息与其中任一病毒特征信息的相似度大于预设阈值的情况下,确定所述任一病毒特征信息为目标病毒,确定所述目标文件为病毒关联文件。
在一种实施方式中,处理单元34具体可以用于:
在所述检测结果为所述预设病毒处理库中存在与所述病毒标识对应的修复脚本字节码的情况下,根据所述病毒标识,在所述预设病毒处理库的修复子库中查找与所述病毒标识对应的修复脚本字节码;利用所述修复脚本字节码修复所述目标文件;
或者
在所述检测结果为所述预设病毒处理库中不存在与所述病毒标识对应的修复脚本字节码的情况下,删除所述目标文件。
在一种实施方式中,所述装置还可以包括构建单元,用于在根据目标文件的文件特征信息以及预设病毒处理库中的病毒特征信息,确定所述目标文件是否为病毒关联文件之前,基于luajit语言构建所述预设病毒处理库,所述预设病毒处理库包括扫描子库和修复子库,其中,所述扫描子库中设置有用于检测目标文件是否为所述病毒关联文件的检测脚本字节码,所述修复子库中设置有用于修复所述病毒关联文件的修复脚本字节码;查杀同一病毒所用的所述检测脚本字节码与所述修复脚本字节码,对应同一所述病毒标识。
在一种实施方式中,所述构建单元包括:
第一获取模块,用于分别获取各病毒对应的修复脚本;
第一转化模块,用于将各所述修复脚本分别由明文转化为字节码,得到对应的修复脚本字节码;
第一封装模块,用于按照第一封装规则,对各所述修复脚本字节码进行封装,得到所述修复子库,所述修复子库包括头部、代码区和代码索引表,其中,所述头部用于描述所述修复子库的属性信息,所述代码区用于承载各所述修复脚本字节码,所述代码索引表用于指示每个所述修复脚本字节码在所述修复子库中的偏移地址。
在一种实施方式中,所述头部包括所述修复子库的版本信息、所述修复子库的标识信息、所述修复子库的校验信息、所述代码索引表在所述修复子库中的偏移地址。
在一种实施方式中,处理单元34可以包括:
查找模块,用于在所述检测结果为所述预设病毒处理库中存在与所述病毒标识对应的修复脚本字节码的情况下,在所述修复子库的头部,查找所述代码索引表在所述修复子库中的偏移地址;
定位模块,用于根据所述代码索引表在所述修复子库中的偏移地址,定位所述代码索引表;
查询模块,用于根据所述病毒标识,在所述代码索引表中查询所述病毒标识对应的修复脚本字节码在所述修复子库中的偏移地址;
第二获取模块,用于根据所述修复脚本字节码在所述修复子库中的偏移地址,从所述修复子库的所述代码区获取所述修复脚本字节码;
修复模块,用于利用所述修复脚本字节码修复所述目标文件。
在一种实施方式中,所述代码索引表位于所述修复子库的最后位置;所述装置还包括:
接收单元,用于接收代码调整指令,所述代码调整指令用于指示删除所述代码区中的第一修复脚本字节码;
指示单元,用于根据所述代码调整指令,在所述代码索引表中,对所述第一修复脚本字节码对应的索引进行失效指示。
在一种实施方式中,所述装置还可以包括:
第二获取单元,用于根据所述预设病毒处理库中各病毒标识中的时间戳位获取各病毒的最近检出时刻;
加载单元,用于根据所述最近检出时刻,将所述修复子库中的至少一部分病毒标识对应的修复脚本字节码加载到缓存中;
缓存更新单元,用于根据各病毒对应的最近检出时刻的变化,对缓存进行动态更新。
在一种实施方式中,所述构建单元具体可以包括:
第三获取模块,用于分别获取各病毒对应的检测脚本;
第二转化模块,用于将各所述检测脚本分别由明文转化为字节码,得到对应的检测脚本字节码;
第二封装模块,用于按照第二封装规则,对各所述检测脚本字节码进行封装,得到所述扫描子库,所述扫描子库包括头部、代码区和代码索引表,其中,所述头部用于描述所述扫描子库的属性信息,所述代码区用于承载各所述检测脚本字节码,所述代码索引表用于指示每个所述检测脚本字节码在所述扫描子库中的偏移地址。
第三方面,本发明实施例提供一种电子设备,能够有效简化病毒查杀服务的维护。
如图6所示,本发明的实施例提供的电子设备,可以包括:壳体51、处理器52、存储器53、电路板54和电源电路55,其中,电路板54安置在壳体51围成的空间内部,处理器52和存储器53设置在电路板54上;电源电路55,用于为上述电子设备的各个电路或器件供电;存储器53用于存储可执行程序代码;处理器52通过读取存储器53中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例提供的基于luajit的病毒感染处理方法。
处理器52对上述步骤的具体执行过程以及处理器52通过运行可执行程序代码来进一步执行的步骤,可以参见前述实施例的描述,在此不再赘述。
上述电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子设备。
相应的,第四方面,本发明的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述实施例提供的任一种基于luajit的病毒感染处理方法,因此也能实现相应的技术效果,前文已经进行了详细说明,此处不再赘述。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种基于luajit的病毒感染处理方法,其特征在于,包括:
根据目标文件的文件特征信息以及预设病毒处理库中的病毒特征信息,确定所述目标文件是否为病毒关联文件,所述病毒关联文件包括病毒文件和/或被病毒感染的文件,所述预设病毒处理库基于luajit语言建立;
响应于所述目标文件为所述病毒关联文件,从所述预设病毒处理库中获取所述病毒关联文件对应的病毒标识;
根据所述病毒标识检测所述预设病毒处理库中是否存在与所述病毒标识对应的修复脚本字节码;
根据检测结果对所述目标文件进行处理。
2.根据权利要求1所述的方法,其特征在于,所述病毒标识包括子库标识位和库内索引位,所述子库标识位包括标志位、时间戳位、进程标识位。
3.根据权利要求2所述的方法,其特征在于,所述根据所述病毒标识检测所述预设病毒处理库中是否存在对应的修复脚本字节码包括:
根据所述病毒标识中的所述标志位,检测所述预设病毒处理库中是否存在与所述病毒标识对应的修复脚本字节码。
4.根据权利要求1所述的方法,其特征在于,所述根据目标文件的文件特征信息以及预设病毒处理库中的病毒特征信息,确定所述目标文件是否为病毒关联文件包括:
将所述目标文件的文件特征信息与所述预设病毒处理库的扫描子库中的各病毒特征信息相比对;
在所述文件特征信息与其中任一病毒特征信息的相似度大于预设阈值的情况下,确定所述任一病毒特征信息为目标病毒,确定所述目标文件为病毒关联文件。
5.根据权利要求1所述的方法,其特征在于,所述根据检测结果对所述目标文件进行处理包括:
在所述检测结果为所述预设病毒处理库中存在与所述病毒标识对应的修复脚本字节码的情况下,根据所述病毒标识,在所述预设病毒处理库的修复子库中查找与所述病毒标识对应的修复脚本字节码;利用所述修复脚本字节码修复所述目标文件;
或者
在所述检测结果为所述预设病毒处理库中不存在与所述病毒标识对应的修复脚本字节码的情况下,删除所述目标文件。
6.根据权利要求1所述的方法,其特征在于,所述根据目标文件的文件特征信息以及预设病毒处理库中的病毒特征信息,确定所述目标文件是否为病毒关联文件之前,所述方法还包括:
基于luajit语言构建所述预设病毒处理库,所述预设病毒处理库包括扫描子库和修复子库,其中,所述扫描子库中设置有用于检测目标文件是否为所述病毒关联文件的检测脚本字节码,所述修复子库中设置有用于修复所述病毒关联文件的修复脚本字节码;查杀同一病毒所用的所述检测脚本字节码与所述修复脚本字节码,对应同一所述病毒标识。
7.根据权利要求6所述的方法,其特征在于,构建所述修复子库包括:
分别获取各病毒对应的修复脚本;
将各所述修复脚本分别由明文转化为字节码,得到对应的修复脚本字节码;
按照第一封装规则,对各所述修复脚本字节码进行封装,得到所述修复子库,所述修复子库包括头部、代码区和代码索引表,其中,所述头部用于描述所述修复子库的属性信息,所述代码区用于承载各所述修复脚本字节码,所述代码索引表用于指示每个所述修复脚本字节码在所述修复子库中的偏移地址。
8.根据权利要求7所述的方法,其特征在于,所述头部包括所述修复子库的版本信息、所述修复子库的标识信息、所述修复子库的校验信息、所述代码索引表在所述修复子库中的偏移地址。
9.根据权利要求8所述的方法,其特征在于,所述根据检测结果对所述目标文件进行处理包括:
在所述检测结果为所述预设病毒处理库中存在与所述病毒标识对应的修复脚本字节码的情况下,在所述修复子库的头部,查找所述代码索引表在所述修复子库中的偏移地址;
根据所述代码索引表在所述修复子库中的偏移地址,定位所述代码索引表;
根据所述病毒标识,在所述代码索引表中查询所述病毒标识对应的修复脚本字节码在所述修复子库中的偏移地址;
根据所述修复脚本字节码在所述修复子库中的偏移地址,从所述修复子库的所述代码区获取所述修复脚本字节码;
利用所述修复脚本字节码修复所述目标文件。
10.根据权利要求7所述的方法,其特征在于,所述代码索引表位于所述修复子库的最后位置;
所述方法还包括:
接收代码调整指令,所述代码调整指令用于指示删除所述代码区中的第一修复脚本字节码;
根据所述代码调整指令,在所述代码索引表中,对所述第一修复脚本字节码对应的索引进行失效指示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210743444.9A CN115062305A (zh) | 2022-06-28 | 2022-06-28 | 一种基于luajit的病毒感染处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210743444.9A CN115062305A (zh) | 2022-06-28 | 2022-06-28 | 一种基于luajit的病毒感染处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115062305A true CN115062305A (zh) | 2022-09-16 |
Family
ID=83205236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210743444.9A Pending CN115062305A (zh) | 2022-06-28 | 2022-06-28 | 一种基于luajit的病毒感染处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115062305A (zh) |
-
2022
- 2022-06-28 CN CN202210743444.9A patent/CN115062305A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109951435B (zh) | 一种设备标识提供方法及装置和风险控制方法及装置 | |
CN108875364B (zh) | 未知文件的威胁性判定方法、装置、电子设备及存储介质 | |
US9268939B2 (en) | Method and apparatus for determining virus-infected files | |
CN104217165B (zh) | 文件的处理方法及装置 | |
CN115562992A (zh) | 一种文件检测方法、装置、电子设备及存储介质 | |
CN114282212A (zh) | 流氓软件识别方法、装置、电子设备及存储介质 | |
CN109145589B (zh) | 应用程序获取方法及装置 | |
CN115062305A (zh) | 一种基于luajit的病毒感染处理方法及装置 | |
CN113779576A (zh) | 一种可执行文件感染病毒的识别方法、装置及电子设备 | |
CN110611675A (zh) | 向量级检测规则生成方法、装置、电子设备及存储介质 | |
CN113987489A (zh) | 一种网络未知威胁的检测方法、装置、电子设备及存储介质 | |
CN113127868A (zh) | 脚本识别方法、装置、设备及存储介质 | |
CN108875363B (zh) | 一种加速虚拟执行的方法、装置、电子设备及存储介质 | |
CN113010885B (zh) | 一种检测伪装起始地址的内核线程的方法及装置 | |
CN114357454A (zh) | 二进制可执行文件依赖库分析方法、装置、电子设备及存储介质 | |
CN112887328A (zh) | 一种样本检测方法、装置、设备及计算机可读存储介质 | |
CN114338102A (zh) | 安全检测方法、装置、电子设备及存储介质 | |
CN111027071A (zh) | 一种威胁程序全行为关联分析方法及装置 | |
CN112580038A (zh) | 反病毒数据的处理方法、装置及设备 | |
CN107657026B (zh) | 用户界面单元测试方法、装置、可读存储介质及设备 | |
CN112579839A (zh) | 大规模特征的多模匹配方法、装置及存储介质 | |
CN115987647A (zh) | 一种web漏洞检测方法、装置及电子设备 | |
CN115758358A (zh) | 一种病毒自动化检测方法、装置及电子设备 | |
CN114168953A (zh) | 一种恶意代码检测方法、装置、电子设备及存储介质 | |
CN115964708A (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 |