CN112241529B - 恶意代码检测方法、装置、存储介质和计算机设备 - Google Patents
恶意代码检测方法、装置、存储介质和计算机设备 Download PDFInfo
- Publication number
- CN112241529B CN112241529B CN201910641655.XA CN201910641655A CN112241529B CN 112241529 B CN112241529 B CN 112241529B CN 201910641655 A CN201910641655 A CN 201910641655A CN 112241529 B CN112241529 B CN 112241529B
- Authority
- CN
- China
- Prior art keywords
- code
- program
- malicious
- codes
- malicious code
- 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
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 154
- 238000000034 method Methods 0.000 claims abstract description 175
- 230000008569 process Effects 0.000 claims abstract description 146
- 230000006870 function Effects 0.000 claims description 90
- 238000012545 processing Methods 0.000 claims description 35
- 238000012544 monitoring process Methods 0.000 claims description 24
- 230000006399 behavior Effects 0.000 claims description 23
- 206010000117 Abnormal behaviour Diseases 0.000 claims description 18
- 238000012795 verification Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 11
- 230000009191 jumping Effects 0.000 claims description 5
- 230000003542 behavioural effect Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 125000004122 cyclic group Chemical group 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000011895 specific detection Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002618 waking effect Effects 0.000 description 1
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/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Abstract
本申请涉及一种恶意代码检测方法、装置、计算机可读存储介质和计算机设备,方法包括:当监测到符合预设条件的启动指令时,将预设的DLL文件加载至启动指令对应程序的目标进程中,预设条件为启动指令对应程序的程序标识与配置文件中的其中一个程序标识相同,目标进程通过响应启动指令并加载内存来启动,预设的DLL文件与配置文件关联,通过运行加载的DLL文件,读取配置文件,得到配置文件中与目标程序标识对应恶意代码的特征数据,目标程序标识与程序的程序标识相同,根据特征数据,对目标进程的程序代码进行检测,得到检测结果。本申请提供的方案可以实现对通过内存加载的方式注入目标进程的恶意代码的有效检测识别。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种恶意代码检测方法、装置、计算机可读存储介质和计算机设备。
背景技术
随着网联网和信息技术的快速发展,网络技术与信息技术已经渗透到生活中的各方各面,随之而来的,网络安全也成为了重要问题。
在终端的系统应用程序或是软件应用程序中,可能存在着恶意代码,影响应用程序的正常运行。一般来说,恶意代码是指故意编制或设置的、对网络或系统会产生威胁或潜在威胁的计算机代码。对于恶意代码,最常用的处理方式就是识别出应用程序中的恶意代码,从而对恶意代码进行拦截。
传统的技术方案主要是通过基于模块回调的DLL(Dynamic Link Library,文件为动态链接库文件)patch(补丁)来拦截恶意模块,通过拦截恶意模块加载,或者patch恶意模块入口点的方式拦截恶意功能执行,这两种方式都是基于确定恶意代码的源头来进行拦截实现的。
然而,对于通过内存加载方式注入的恶意代码,难以识别恶意代码的源头,将不会命中模块回调且无法确定恶意模块的入口点,无法实现对内存加载恶意代码的有效检测与拦截。
发明内容
基于此,有必要针对无法实现对内存加载恶意代码的有效检测的技术问题,提供一种恶意代码检测方法、装置、计算机可读存储介质和计算机设备。
一种恶意代码检测方法,包括:
当监测到符合预设条件的启动指令时,将预设的DLL文件加载至所述启动指令对应程序的目标进程中,所述预设条件为所述启动指令对应程序的程序标识与配置文件中的其中一个程序标识相同,所述目标进程通过响应所述启动指令并加载内存来启动,所述预设的DLL文件与所述配置文件关联;
通过运行加载的所述DLL文件,读取所述配置文件,得到所述配置文件中与目标程序标识对应恶意代码的特征数据,所述目标程序标识与所述程序的程序标识相同;
根据所述特征数据,对所述目标进程的程序代码进行检测,得到检测结果。
一种恶意代码检测装置,所述装置包括:
DLL文件加载模块,用于当监测到符合预设条件的启动指令时,将预设的DLL文件加载至所述启动指令对应程序的目标进程中,所述预设条件为所述启动指令对应程序的程序标识与配置文件中的其中一个程序标识相同,所述目标进程通过响应所述启动指令并加载内存来启动,所述预设的DLL文件与所述配置文件关联;
DLL文件运行模块,用于通过运行加载的所述DLL文件,读取所述配置文件,得到所述配置文件中与目标程序标识对应恶意代码的特征数据,所述目标程序标识与所述程序的程序标识相同;
检测结果获得模块,用于根据所述特征数据,对所述目标进程的程序代码进行检测,得到检测结果。
一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:
当监测到符合预设条件的启动指令时,将预设的DLL文件加载至所述启动指令对应程序的目标进程中,所述预设条件为所述启动指令对应程序的程序标识与配置文件中的其中一个程序标识相同,所述目标进程通过响应所述启动指令并加载内存来启动,所述预设的DLL文件与所述配置文件关联;
通过运行加载的所述DLL文件,读取所述配置文件,得到所述配置文件中与目标程序标识对应恶意代码的特征数据,所述目标程序标识与所述程序的程序标识相同;
根据所述特征数据,对所述目标进程的程序代码进行检测,得到检测结果。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:
当监测到符合预设条件的启动指令时,将预设的DLL文件加载至所述启动指令对应程序的目标进程中,所述预设条件为所述启动指令对应程序的程序标识与配置文件中的其中一个程序标识相同,所述目标进程通过响应所述启动指令并加载内存来启动,所述预设的DLL文件与所述配置文件关联;
通过运行加载的所述DLL文件,读取所述配置文件,得到所述配置文件中与目标程序标识对应恶意代码的特征数据,所述目标程序标识与所述程序的程序标识相同;
根据所述特征数据,对所述目标进程的程序代码进行检测,得到检测结果。
上述恶意代码检测方法、装置、计算机可读存储介质和计算机设备,通过利用配置文件确定的预设条件,监测符合预设条件的启动指令,确定可能存在恶意代码的程序,将与配置文件关联的DLL文件加载至程序的目标进程,DLL文件运行时,可以读取配置文件,根据配置文件中对应恶意代码的特征数据,对目标进程的程序代码进行检测,得到检测结果,由于目标进程通过响应启动指令并加载内存来启动,内存加载过程中可能存在恶意代码,通过加载DLL文件至程序的目标进程,以恶意代码的特征数据为检测依据,并以目标进程的程序代码为查找对象进行检测,即使恶意代码通过内存加载的方式注入目标进程,也能快速准确地对通过内存加载注入的恶意代码进行检测识别。
附图说明
图1为一个实施例中恶意代码检测方法的应用环境图;
图2为一个实施例中恶意代码检测方法的流程示意图;
图3为一个实施例中步骤S206的子步骤的流程示意图;
图4为一个实施例中全内存搜索特征匹配的流程示意图;
图5为一个实施例中步骤S206的另一子步骤的流程示意图;
图6为一个实施例中通过行为特征检测恶意代码的流程示意图;
图7为一个实施例中配置文件更新的流程示意图;
图8为一个实施例中云服务器与终端的交互过程图;
图9为另一个实施例中恶意代码检测方法的流程示意图;
图10为一个实施例中恶意代码检测装置的结构框图;
图11为一个实施例中计算机设备的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,恶意代码检测方法的应用环境如图1所示。恶意代码检测方法的应用环境涉及终端101,终端101上安装有多个应用程序(以下简称程序),包括用于检测恶意代码的目标程序和除目标程序外的其他程序,其他程序包括终端的系统程序和软件程序,目标程序处于运行状态时,监测终端上其他程序的启动指令,当启动指令所启动的程序进程与配置文件中标识的程序相同时,将预设的DLL文件加载至该进程中,通过运行加载的预设的DLL文件,读取配置文件,得到配置文件中与该程序的程序标识对应恶意代码的特征数据,进而根据特征数据,对目标进程的程序代码进行检测,得到检测结果。其中终端101具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。
其中,该应用环境还可以涉及恶意代码检测平台102,恶意代码检测平台102通过网络与终端101连接,与恶意代码检测平台102连接的终端101的数量可以为多个,在终端101上通过安装的目标程序与恶意代码检测平台实现网络连接,恶意代码检测平台102下发配置文件至终端,目标程序根据配置文件,对终端101中的其他程序的进程进行恶意代码检测,目标程序还用于监测终端101中各程序运行过程中的行为,当监测到程序运行过程中存在非正常行为时,提取与非正常行为对应的恶意代码,并将携带有恶意代码和该程序的程序标识的监测反馈消息发送至恶意代码检测平台102,恶意代码检测平台102根据监测反馈消息更新配置文件,并将更新的配置文件下发至连接的各个终端。其中,恶意代码检测平台102可以用独立的服务器或者是多个服务器组成的服务器集群来实现,在实施例中,服务器可以是云服务器,通过云下发策略配置的方式更新终端101中的配置文件,以实现高效及时响应恶意程序的变化。
如图2所示,在一个实施例中,提供了一种恶意代码检测方法。本实施例主要以该方法应用于上述图1中的终端101来举例说明。参照图2,该恶意代码检测方法具体包括如下步骤S202至S206。
S202,当监测到符合预设条件的启动指令时,将预设的DLL文件加载至启动指令对应程序的目标进程中,预设条件为启动指令对应程序的程序标识与配置文件中的其中一个程序标识相同,目标进程通过响应启动指令并加载内存来启动,预设的DLL文件与配置文件关联。
其中,启动指令是指用户通过终端操作,用于唤醒程序的指令,具体来说,用户可以通过终端的操作界面,触发程序的图标来生成启动指令,也可以是触发预设的操作来唤醒程序发出的指令,预设的操作可以包括终端开机触发或是通过其他程序的跳转触发等。
配置文件中包括一项或多项配置策略,配置策略包括可能存在恶意代码的程序的程序标识以及该恶意代码的特征信息。其中,配置策略中恶意代码与程序标识的对应关系可以是一对一、多对一或是一对多。也就是说,一个程序中可能存在的一种恶意代码,也可能存在的多种恶意代码,一种恶意代码可以存在与一个程序中,也存在可以存在于多个程序中。配置文件中包含一个或对个程序标识。
包含的符合预设条件的启动指令是指启动指令对应程序的程序标识与配置文件中的其中一个程序标识相同的情况。在实施例中,可以通过不同的方式对终端的程序进行监测,确定是否存在符合预设条件的启动指令。
在其中一个实施例中,基于配置文件中的程序标识,监测到程序标识对应的程序有启动指令时,该启动指令即为符合预设条件的启动指令。通过配置文件中的程序标识,确定了要监测的对象,即与配置文件中的程序标识对应的程序,实现了对监测对象的筛选,对于配置文件更新频率较低的情况,采用这种监测方式,能显著节约处理资源。在其中另一个实施例中,在监测到有程序的启动指令时,程序的程序标识在配置文件中,该启动指令即为符合预设条件的启动指令。通过这种方式,对终端的所有程序进行监测,当监测到启动指令时,判断该启动指令对应程序的程序标识,是否在配置文件中,对于配置文件更新频率较高的情况,采用这种监测方式,监测对象无需实时调整,减小了配置文件的更新对启动指令监测的影响。
当启动指令生成时,程序响应启动指令并加载内存来启动程序进程。内存加载是一种保护程序的方法,通过模拟Windows PE加载器,从内存资源中加载DLL。其流程一般如下:在目标进程中申请内存,拷贝模块内容到目标进程内存;修复重定位表和IAT;修改内存页属性;手动调用模块入口函数。
当监测到启动指令时,将预设的DLL文件加载至程序的目标进程中,预设的DLL文件是与配置文件相关联的特有DLL文件,该预设DLL文件在目标进程中运行时,可以读取配置文件中的参数,对目标进程进行恶意代码的扫描与检测。所谓将预设的DLL文件加载至程序的目标进程就是将一个DLL注入到目标进程的地址空间中,一旦DLL代码进入了另一个地址空间,就可以在该地址空间中执行该代码的逻辑。
在实施例中,终端上运行有用于进行恶意代码检测的应用程序,通过驱动该应用程序,读取配置文件,监测符合预设条件的启动指令。
S204,通过运行加载的DLL文件,读取配置文件,得到配置文件中与目标程序标识对应恶意代码的特征数据,目标程序标识与程序的程序标识相同。
将预设的DLL文件加载至启动指令对应程序的目标进程时,DLL文件在目标进程中运行,以读取配置文件,确定配置文件中与该程序对应的配置策略,并通过配置策略,得到对应恶意代码的特征数据。
在实施例中,恶意代码的特征数据通过已有非正常行为分析得到,特征数据可以包括恶意代码的特征代码和偏移代码、恶意代码在程序进程中出现的时机即查找执行条件、恶意代码是否具有特征行为等。
S206,根据特征数据,对目标进程的程序代码进行检测,得到检测结果。
某些恶意代码是在目标进程启动时进行注入并执行的,并且不同操作系统,不同硬件条件的机器环境,恶意代码执行的时机也会也会有所不同。在确定配置文件中的配置策略时,会根据恶意代码在程序进程中出现的时机,确定查找执行条件。在目标进程运行过程中,通过执行DLL文件的代码,确定恶意代码查找的时机,即恶意代码的查找执行条件。特征数据中配置有恶意代码的查找执行条件,一般来说,查找执行条件可以是当前运行内存块为指定内存块,或当前运行代码为指定代码,或当前调用函数为指定函数。通过配置查找执行条件,可以实现有的放矢,提高查找效率。当目标进程的运行数据满足查找执行条件时,以当前进程为查找开始对象,查找程序代码中是否存在与特征代码匹配的恶意代码,得到检测结果。
上述恶意代码检测方法,通过利用配置文件确定的预设条件,监测符合预设条件的启动指令,确定可能存在恶意代码的程序,将与配置文件关联的DLL文件加载至程序的目标进程,DLL文件运行时,可以读取配置文件,根据配置文件中对应恶意代码的特征数据,对目标进程的程序代码进行检测,得到检测结果,由于目标进程通过响应启动指令并加载内存来启动,内存加载过程中可能存在恶意代码,通过加载DLL文件至程序的目标进程,以恶意代码的特征数据为检测依据,并以目标进程的程序代码为查找对象进行检测,即使恶意代码通过内存加载的方式注入目标进程,也能快速准确地对通过内存加载注入的恶意代码进行检测识别
具体来说,目标进程的程序代码检测分为两大类,一类是恶意代码是不具有特征行为的,另一类是恶意代码是具有特征行为的。
在实施例中,对于恶意代码不具有特征行为的特征数据,通过进程全内存特征搜索方式进行检测,检测过程包括步骤S302至步骤S306。
S302,获取目标进程中内存块的属性参数。
在实施例中,若特征数据中包括查找执行条件,该目标进程中的内存块为满足查找执行条件的起始内存块,若特征数据中不包括执行条件,该目标进程中的内存块为目标进程中的起始内存块。内存块的参数属性包括内存块可执行或内存块不可执行。一般来说,只有可执行的内存块中的恶意代码会对目标进程产生影响,如果恶意代码存在的内存块为不可执行的,那么,在目标进程运行过程中,恶意代码也同样不会执行,对目标进程不会产生影响。
S304,验证属性参数为可执行的内存块的程序代码。
S306,当验证结果为存在与恶意代码匹配的程序代码时,确定存在恶意代码,检测结果包括存在恶意代码的检测结果。
具体地,恶意代码的特征数据包括偏移代码各特征代码,以属性参数为可执行的内存块为对象,执行偏移代码,定位该内存块中的待验证程序代码,通过确定该内存块中的待验证程序代码与特征代码是否匹配,来确定验证结果是否存在与恶意代码匹配的程序代码。当待验证程序代码与特征代码匹配时,即该内存块中存在与恶意代码匹配的程序代码,并确定待验证程序代码为恶意代码,检测结果还包括恶意代码的信息。
在其中一个实施例中,检测过程还包括:当验证结果为不存与恶意代码匹配的程序代码时,按目标进程的执行顺序,检测下一内存块是否存在恶意代码。
全内存搜索特征匹配的流程图请参见图4,首先,获取配置文件中恶意代码的特征代码和偏移代码,根据查找执行条件,确定目标进程中的内存块,然后判断内存块属性是否可执行,当该内存块属性为不可执行时,按照目标进程的执行顺序,搜索下一内存块并进行检测,当该内存块的属性为可执行时,以该内存块为对象,执行偏移代码,并判断执行偏移代码后定位的待验证程序代码,是否与恶意代码的特征代码匹配,当不匹配时,按照目标进程的执行顺序,搜索下一内存块并进行检测,当匹配时,确定该待验证程序代码为恶意代码。进程全内存搜索特征匹配的方式,不论恶意代码通过何种方式加载进目标进程,通过该方案都能够通过特征代码匹配到目标进程中存在的恶意代码,具有通用性。由于方案执行时会对目标进程的所有内存块进行特征匹配,为了提高性能,方案先根据内存块属性对内存块进行一次过滤,这样可以排除不可执行的内存块,减小匹配工作量。
在其中一个实施例中,检测过程还包括:当属性参数为可执行的内存块中均不存在与恶意代码匹配的程序代码时,确定不存在恶意代码,检测结果包括不存在恶意代码的检测结果。
其中,全内存搜索特征匹配的流程图对应一次全内存检测,当配置文件中对应配置策略为单次检测时,以起始内存块为遍历起点,当遍历完成时,且不存在与恶意代码匹配的程序代码的内存块时,确定不存在恶意代码,并结束此次检测,此时检测结果为该目标进程中不存在恶意代码。
为了保证处理恶意代码的有效性,需要在进程启动过程中循环进行匹配检测(例如目标进程每次加载内存块时),以免错过恶意代码的执行时机。当配置文件中对应配置策略为多次循环检测时,确定检测结束条件,检测结束条件循环次数或是内存块的加载情况等,当一次检测结束时,需继续进行循环检测,当满足检测结束条件时,结束检测。多次循环检测过程中不存在与恶意代码匹配的程序代码的内存块时,确定检测结果为该目标进程中不存在恶意代码。
在实施例中,对于检测结果被存在恶意代码的情况,还包括对恶意代码进行处理,通过改变恶意代码的执行逻辑,达到保护目标进程正常运行,不执行恶意代码的目的。当我们需要改变程序原有的执行逻辑,使其增加或者减少一些功能的时候,就需要对源文件进行补丁处理。补丁处理分文件补丁和内存补丁两种。文件补丁就是修改文件本身某个数据,打到一劳永逸的效果。顾名思义,内存补丁就是在内存中打补丁、修改,确切的说,是对正在运行的程序的数据进行修改,以达到某种效果。对于不同的恶意代码,会根据恶意代码的影响结果,在配置文件中确定对应的处理策略,恶意代码处理策略可以包括禁止恶意代码的所有功能或禁止恶意代码的部分功能。
对于禁止恶意代码的所有功能的恶意代码处理策略,识别恶意代码信息中恶意代码的入口代码,并将入口代码的执行逻辑修改为返回。
其中,恶意代码的入口代码是指恶意代码的执行起点对应的代码,通过将入口代码的执行逻辑修改为返回,将不会执行该部分的恶意代码,从而达到禁止恶意代码的所有功能的效果。
对于禁止恶意代码的指定功能的恶意代码处理策略,识别恶意代码信息中恶意代码指定功能的调用函数,修改调用函数的返回值。
其中,指定功能的调用函数是指恶意代码中用于实现该指定功能对应的代码的挂钩函数,通过修改调用函数的返回值,从而使得恶意代码在执行过程中,会跳过该部分,若指定功能不存在调用函数,则识别恶意代码指定功能的起始代码,通过对该起始代码进行修改,达到修改恶意代码的执行逻辑,从而达到禁止恶意代码的指定功能的效果。
在实施例中,对于恶意代码具有特征行为的特征数据,以恶意代码的行为特征为基础,检测恶意代码。恶意代码具有特征行为,对应的特征数据包括行为特征、偏移代码和特征代码;恶意代码的检测过程包括步骤S502至508。
S502,当行为特征为挂钩系统函数时,获取挂钩的系统函数在目标进程中对应的入口代码。
S504,当检测到入口代码中的系统函数关联有挂钩跳转代码时,跳转至挂钩跳转代码对应的执行函数,确定目标内存块,目标内存块为执行函数所在的内存块。
S506,以目标内存块为对象,执行偏移代码,定位目标内存块中的待验证程序代码。
S508,当目标内存块中的待验证程序代码与特征代码匹配成功时,确定存在恶意代码,检测结果包括存在恶意代码的检测结果。
通过行为特征检测恶意代码过程的流程图参见图6,首先通过配置文件,确定恶意代码的行为特征。例如恶意代码挂钩某个系统函数,首先获取目标进程中该系统函数的起始地址,确定该系统函数的入口代码,将该入口代码与对应的系统远程代码进行比对,判断该系统函数是否被挂钩,如果该系统函数被挂钩,则根据挂钩跳转代码跳转至挂钩跳转代码对应的执行函数,将该执行函数所在的内存块作为目标内存块,并以目标内存块为对象,执行偏移代码,定位目标内存块中的待验证程序代码,验证该待验证程序代码是否与特征代码匹配,从而得到检测结果。对于检测到的恶意代码,处理过程与上述根据恶意代码处理策略对恶意代码进行处理的过程相同。
在一个实施例中,当该启动的程序对应的配置策略中,该目标进程中可能存在多个恶意代码时,同步执行多个恶意代码的检测。各个恶意代码的检测过程及其处理方法与上述方法相同,不再赘述。
在实施例中,配置文件为可更新的文件,具体来说,配置文件为云服务器发送的更新配置文件。云服务器收集可能存在与程序中的恶意代码以及该程序代码的特征数据,整合得到更新的配置文件,并实时或定时发送更新的配置文件至终端。
具体来说,配置文件的更新过程包括步骤S702至S704。
步骤S702,当监测到程序运行过程中存在非正常行为时,提取与非正常行为对应的恶意代码;
步骤S704,将携带有恶意代码和该程序的程序标识的监测反馈消息发送至云服务器,监测反馈消息用于使云服务器更新初始配置文件。
在终端中,除了对配置文件中包含的程序标识对应的程序目标进程,进行恶意代码检测,还可以通过监测终端运行的所有应用程序,确定程序运行过程中存在与设定正常行为存在差异的非正常行为,通过分析该程序进程的程序代码,提取非正常行为对应的恶意代码。终端将该恶意代码与该程序的程序标识通过监测反馈消息上报至云服务器。云服务器进一步根据监测反馈消息,分析恶意代码的特征数据,从而生成对应的配置策略,将配置策略更新至初始配置文件。在其他实施例中,云服务器还可以将监测反馈信息发送至管理人员所在的终端,以使管理人员根据该恶意代码、该程序的程序标识,手动配置对应的策略,然后将手动配置的策略反馈至云服务器,以使云服务器更新初始配置文件,或是管理人员直接根据手动配置的策略,对配置文件进行更新,将更新的配置文件上传至云服务器。云服务器将更新的配置文件下发至各个终端,实现终端配置文件的更新。
在一个实施例中,云服务器与终端的交互过程请参见图8。
云服务器将配置文件下发到终端,终端的应用层将接收的配置文件下发至驱动层,驱动层根据配置文件中的程序标识,回调注册模块,当存在对应的程序启动时,即为命中策略,将预设的DLL文件注入对应启动程序的目标进程中,实现命中上抛,应用层中对命中应用程序进行恶意代码检测处理,具体检测过程包括:对于存在有特征行为的恶意代码,确定该特征行为对应挂钩的系统函数,获取目标进程内该系统函数的起始地址,通过与预设系统远程代码的对比结果,判定该系统函数有没有被恶意挂钩,当被恶意挂钩时,根据对应的挂钩跳转代码,跳转至对应的执行函数,确定该执行函数所在的内存块为目标内存块,实现目标内存块的快速定位,以目标内存块为目标,进行恶意代码的检测。对于不存在有特征行为的恶意代码,通过全内存特征搜索来进行检测,首先,根据查找执行条件,确定查找的起始内存块,然后,遍历各内存块,获取属性参数中用于表征可执行情况的标志位,对于标志位对应为可执行的内存块,以该内存块为目标,进行恶意代码的检测。对于确定出的内存块,具体的检测过程包括:确定该内存块的模块头,以模块头为对象,执行偏移代码,确定相对于模块头的字节偏移量,确定字节偏移量对应位置的程序代码为待验证程序代码。将待验证程序代码与恶意代码的特征代码进行比较,当待验证程序代码与恶意代码的特征代码相同时,确定该待验证代码为恶意代码。
然后,对检测到的恶意代码进行处理,具体的处理方式根据恶意代码的执行逻辑来实现,以阻止恶意代码执行或对其执行结果进行处理的方式为处理依据,如图8中的处理方式恢复hook、patch以及反patch。处理方式恢复hook即为针对恶意代码的执行逻辑为阻止hook,而采取的处理方式。处理方式patch即为对恶意代码进行补丁处理,包括阻止恶意代码的全部功能或部分功能。处理方式反patch是指恶意代码对预设的DLL文件由补丁作用时,对恶意代码进行反补丁的处理。
图9为一个实施例中恶意代码检测方法的流程示意图。应该理解的是,虽然图9的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图9中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
请参见图9,在一个实施例中,恶意代码检测方法包括步骤S902至S932。
S902,终端应用层接收云端下发的配置文件。
配置文件中包括应用程序标识、恶意代码特征数据以及恶意代码处理策略,其中,恶意代码特征数据包括恶意代码的特征代码、偏移代码、查找执行条件,特征数据还可以包括行为特征。其中,特征代码用于表征恶意代码的特征,是确定程序代码是否为恶意代码的关键。若程序代码的指定位置的代码与特征代码相同,则确定存在恶意代码,该指定位置的代码对应为恶意代码的一部分。偏移代码用于确定特征代码在程序中出现的位置,通过偏移代码,确定相对于固定位置的偏移量,该固定位置可以是内存块的模块头,偏移量可以是相对于模块头的字节偏移。查找执行条件用于确定进行全内存搜索的开始节点,以避免不必要的处理开支。行为特征包括恶意代码是否挂钩有系统函数,以及挂钩的系统函数的具体信息。
S904,当监测到符合预设条件的启动指令时,将预设的DLL文件加载至启动指令对应程序的目标进程中。
终端的应用层接收配置文件,将配置文件下发至驱动层,驱动层回调注册模块,根据应用层下发的配置文件,监测应用层程序是否命中配置文件中的配置策略,如果应用层被启动的应用程序与配置文件中其中一个配置策略中的对应应用程序的标识相同时,则为命中该配置策略,然后将预设的DLL文件,注入启动的应用程序的目标进程中,目标进程通过响应启动指令,加载内存来启动,在进行内存加载时,有可能加载到携带有恶意代码的恶意模块。
S906,通过运行加载的DLL文件,读取配置文件,得到配置文件中与目标程序标识对应恶意代码的特征数据,目标程序标识与程序的程序标识相同。
当该配置策略为该目标进程对应有多个恶意代码时,通过并行检测方式,分别检测是否存在对应的各个恶意代码。
对于恶意代码不具有特征行为的特征数据包括步骤S910至S918。
S910,获取目标进程中内存块的属性参数。
内存块的参数属性包括内存块可执行或内存块不可执行,根据内存块属性对内存块进行过滤,这样可以排除不可执行的内存块,减小匹配工作量。
S912,验证属性参数为可执行的内存块的程序代码。
恶意代码的特征数据包括偏移代码各特征代码,以属性参数为可执行的内存块为对象,执行偏移代码,定位该内存块中的待验证程序代码,通过确定该内存块中的待验证程序代码与特征代码是否匹配,来确定验证结果是否存在与恶意代码匹配的程序代码。
S914,当验证结果为存在与恶意代码匹配的程序代码时,确定存在恶意代码,检测结果包括存在恶意代码的检测结果。
S916,当验证结果为不存与恶意代码匹配的程序代码时,按目标进程的执行顺序,检测下一内存块是否存在恶意代码。
S918,当属性参数为可执行的内存块中均不存在与恶意代码匹配的程序代码时,确定不存在恶意代码,检测结果包括不存在恶意代码的检测结果。
当配置文件中对应配置策略为单次检测时,以起始内存块为遍历起点,当遍历完成时,且不存在与恶意代码匹配的程序代码的内存块时,确定不存在恶意代码,并结束此次检测,此时检测结果为该目标进程中不存在恶意代码。
对于恶意代码不具有特征行为的特征数据,执行以下步骤S920至S926。
S920,当行为特征为挂钩系统函数时,获取挂钩的系统函数在目标进程中对应的入口代码。
S922,当检测到入口代码中的系统函数关联有挂钩跳转代码时,跳转至挂钩跳转代码对应的执行函数,确定目标内存块,目标内存块为执行函数所在的内存块。
S924,以目标内存块为对象,执行偏移代码,定位目标内存块中的待验证程序代码。
S926,当目标内存块中的待验证程序代码与特征代码匹配成功时,确定存在恶意代码,检测结果包括存在恶意代码的检测结果。
S928,当目标内存块中的待验证程序代码与特征代码匹配失败时,确定不存在恶意代码,检测结果包括不存在恶意代码的检测结果。
对于,检测结果中的恶意代码的处理过程包括步骤S930和S932。
S930,对于禁止恶意代码的所有功能的恶意代码处理策略,识别恶意代码信息中恶意代码的入口代码,并将入口代码的执行逻辑修改为返回。
S932,对于禁止恶意代码的指定功能的恶意代码处理策略,识别恶意代码信息中恶意代码指定功能的调用函数,修改调用函数的返回值。
此外,终端在进行恶意代码的检测的同时,还监测各应用程序中是否存在非正常行为,将非正常行为对应程序的程序标识和非正常行为对应的恶意代码反馈至云服务器,以实现对配置文件的更新,对于新增的恶意模块或者变种恶意模块,可以实现快速应对。
在一个实施例中,提供了一种恶意代码检测装置,请参见图10,装置包括:
DLL文件加载模块1002,用于当监测到符合预设条件的启动指令时,将预设的DLL文件加载至启动指令对应程序的目标进程中,预设条件为启动指令对应程序的程序标识与配置文件中的其中一个程序标识相同,目标进程通过响应启动指令并加载内存来启动,预设的DLL文件与配置文件关联。
DLL文件运行模块1004,用于通过运行加载的DLL文件,读取配置文件,得到配置文件中与目标程序标识对应恶意代码的特征数据,目标程序标识与程序的程序标识相同。
检测结果获得模块1006,用于根据特征数据,对目标进程的程序代码进行检测,得到检测结果。
上述恶意代码检测装置,通过利用配置文件确定的预设条件,监测符合预设条件的启动指令,确定可能存在恶意代码的程序,将与配置文件关联的DLL文件加载至程序的目标进程,DLL文件运行时,可以读取配置文件,根据配置文件中对应恶意代码的特征数据,对目标进程的程序代码进行检测,得到检测结果,由于目标进程通过响应启动指令并加载内存来启动,内存加载过程中可能存在恶意代码,通过加载DLL文件至程序的目标进程,以恶意代码的特征数据为检测依据,并以目标进程的程序代码为查找对象进行检测,即使恶意代码通过内存加载的方式注入目标进程,也能快速准确地对通过内存加载注入的恶意代码进行检测识别。
在一个实施例中,DLL文件加载模块1002,还用于实现基于配置文件中的程序标识,监测到程序标识对应的程序有启动指令,或在监测到有程序的启动指令时,程序的程序标识在配置文件中。满足不同更新频率的配置文件的情况下的启动指令检测需求。
在一个实施例中,特征数据包括查找执行条件与特征代码,查找执行条件至少包括当前运行内存块为指定内存块、当前运行代码为指定代码以及当前调用函数为指定函数中的一项。检测结果获得模块1006,还用于当目标进程的运行数据满足查找执行条件时,查找目标进程的程序代码中是否存在与特征代码匹配的恶意代码,得到检测结果。通过配置查找执行条件,可以实现有目的的查找,有的放矢,提高查找效率。
在一个实施例中,检测结果获得模块1006,还用于获取目标进程中内存块的属性参数,验证属性参数为可执行的内存块的程序代码,当验证结果为存在与恶意代码匹配的程序代码时,确定存在恶意代码,检测结果包括存在恶意代码的检测结果。根据内存块属性对内存块进行过滤,排除不可执行的内存块,减小匹配工作量。
在一个实施例中,检测结果获得模块1006,还用于以属性参数为可执行的内存块为对象,执行偏移代码,定位该内存块中的待验证程序代码,当该内存块中的待验证程序代码与特征代码匹配时,确定待验证程序代码为恶意代码,检测结果包括恶意代码的信息。通过偏移代码,准确定位待验证程序代码的位置。
在一个实施例中,检测结果获得模块1006,还用于当验证结果为不存与恶意代码匹配的程序代码时,按目标进程的执行顺序,验证下一内存块是否存在恶意代码。通过持续验证,实现对内存块的全局搜索。
在一个实施例中,检测结果获得模块1006,还用于当属性参数为可执行的内存块中均不存在与恶意代码匹配的程序代码时,确定不存在恶意代码,检测结果包括不存在恶意代码的检测结果。
在一个实施例中,恶意代码检测装置还包括恶意代码处理模块,用于实现对恶意代码的处理。具体可以实现以下各项中的任意一项:
第一项,当配置文件中携带的恶意代码处理策略为禁止恶意代码的所有功能时,识别恶意代码信息中恶意代码的入口代码,并将入口代码的执行逻辑修改为返回;
第二项,当配置文件中携带的恶意代码处理策略为禁止恶意代码的指定功能时,识别恶意代码信息中恶意代码指定功能的调用函数,修改调用函数的返回值。
在一个实施例中,恶意代码的特征数据包括行为特征、偏移代码和特征代码;检测结果获得模块1006,还用于当行为特征为挂钩系统函数时,获取挂钩的系统函数在目标进程中对应的入口代码,当检测到入口代码中的系统函数关联有挂钩跳转代码时,跳转至挂钩跳转代码对应的执行函数,确定目标内存块,目标内存块为执行函数所在的内存块,以目标内存块为对象,执行偏移代码,定位目标内存块中的待验证程序代码,当目标内存块中的待验证程序代码与特征代码匹配成功时,确定存在恶意代码,检测结果包括存在恶意代码的检测结果。通过特征行为,快速定位恶意代码。
在一个实施例中,恶意代码检测装置还包括非正常行为监测模块,用于当监测到程序运行过程中存在非正常行为时,提取与非正常行为对应的恶意代码,将携带有恶意代码和该程序的程序标识的监测反馈消息发送至云服务器,监测反馈消息用于使云服务器更新初始配置文件。实现对配置文件的更新,对于新增的恶意模块或者变种恶意模块,可以快速应对。
图11示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的101。如图11所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现恶意代码检测方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行恶意代码检测方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的恶意代码检测装置可以实现为一种计算机程序的形式,计算机程序可在如图11所示的计算机设备上运行。计算机设备的存储器中可存储组成该恶意代码检测装置的各个程序模块,比如,图10所示的DLL文件加载模块、DLL文件运行模块和检测结果获得模块。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的恶意代码检测方法中的步骤。
例如,图11所示的计算机设备可以通过如图10所示的恶意代码检测装置中的DLL文件加载模块执行当监测到符合预设条件的启动指令时,将预设的DLL文件加载至启动指令对应程序的目标进程中。计算机设备可通过DLL文件运行模块执行通过运行加载的DLL文件,读取配置文件,得到配置文件中与目标程序标识对应恶意代码的特征数据。计算机设备可通过检测结果获得模块执行根据特征数据,对目标进程的程序代码进行检测,得到检测结果。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述恶意代码检测方法的步骤。此处恶意代码检测方法的步骤可以是上述各个实施例的恶意代码检测方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述恶意代码检测方法的步骤。此处恶意代码检测方法的步骤可以是上述各个实施例的恶意代码检测方法中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (22)
1.一种恶意代码检测方法,包括:
当监测到符合预设条件的启动指令时,将预设的DLL文件加载至所述启动指令对应程序的目标进程中,所述预设条件为所述启动指令对应程序的程序标识与配置文件中的其中一个程序标识相同,所述目标进程通过响应所述启动指令并加载内存来启动,所述预设的DLL文件与所述配置文件关联;
通过运行加载的所述DLL文件,读取所述配置文件,得到所述配置文件中与目标程序标识对应恶意代码的特征数据,所述目标程序标识与所述程序的程序标识相同;所述特征数据包括偏移代码和特征代码;
获取所述目标进程中内存块的属性参数;
以所述属性参数为可执行的内存块为对象,执行所述偏移代码,定位该内存块中的待验证程序代码;
当该内存块中的待验证程序代码与所述特征代码匹配时,确定所述待验证程序代码为恶意代码,所述检测结果包括所述恶意代码的信息。
2.根据权利要求1所述的方法,其特征在于,所述监测到符合监测条件的启动指令包括以下各项中的任意一项:
基于配置文件中的程序标识,监测到所述程序标识对应的程序有启动指令;
在监测到有程序的启动指令时,所述程序的程序标识在所述配置文件中。
3.根据权利要求1所述的方法,其特征在于,所述特征数据包括查找执行条件与特征代码,所述查找执行条件至少包括当前运行内存块为指定内存块、当前运行代码为指定代码以及当前调用函数为指定函数中的一项;
所述根据所述特征数据,对所述目标进程的程序代码进行检测,得到检测结果包括:
当所述目标进程的运行数据满足所述查找执行条件时,查找所述目标进程的程序代码中是否存在与所述特征代码匹配的恶意代码,得到检测结果。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
验证所述属性参数为可执行的内存块的程序代码;
当验证结果为存在与所述恶意代码匹配的程序代码时,确定存在恶意代码,所述检测结果包括存在恶意代码的检测结果。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当验证结果为不存与所述恶意代码匹配的程序代码时,按所述目标进程的执行顺序,验证下一内存块是否存在恶意代码。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括;
当属性参数为可执行的内存块中均不存在与所述恶意代码匹配的程序代码时,确定不存在恶意代码,所述检测结果包括不存在恶意代码的检测结果。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括以下各项中的任意一项:
当所述配置文件中携带的恶意代码处理策略为禁止恶意代码的所有功能时,识别所述恶意代码信息中恶意代码的入口代码,并将所述入口代码的执行逻辑修改为返回;
当所述配置文件中携带的恶意代码处理策略为禁止恶意代码的指定功能时,识别所述恶意代码信息中恶意代码指定功能的调用函数,修改所述调用函数的返回值。
8.根据权利要求1所述的方法,其特征在于,所述恶意代码的特征数据包括行为特征、偏移代码和特征代码;所述方法还包括:
当所述行为特征为挂钩系统函数时,获取挂钩的系统函数在所述目标进程中对应的入口代码;
当检测到所述入口代码中的系统函数关联有挂钩跳转代码时,跳转至所述挂钩跳转代码对应的执行函数,确定目标内存块,所述目标内存块为所述执行函数所在的内存块;
以所述目标内存块为对象,执行所述偏移代码,定位目标内存块中的待验证程序代码;
当所述目标内存块中的待验证程序代码与所述特征代码匹配成功时,确定存在恶意代码,所述检测结果包括存在恶意代码的检测结果。
9.根据权利要求1所述的方法,其特征在于,所述配置文件为云服务器发送的更新配置文件。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
当监测到程序运行过程中存在非正常行为时,提取与所述非正常行为对应的恶意代码;
将携带有所述恶意代码和该程序的程序标识的监测反馈消息发送至云服务器,所述监测反馈消息用于使所述云服务器更新初始配置文件。
11.一种恶意代码检测装置,其特征在于,所述装置包括:
DLL文件加载模块,用于当监测到符合预设条件的启动指令时,将预设的DLL文件加载至所述启动指令对应程序的目标进程中,所述预设条件为所述启动指令对应程序的程序标识与配置文件中的其中一个程序标识相同,所述目标进程通过响应所述启动指令并加载内存来启动,所述预设的DLL文件与所述配置文件关联;
DLL文件运行模块,用于通过运行加载的所述DLL文件,读取所述配置文件,得到所述配置文件中与目标程序标识对应恶意代码的特征数据,所述目标程序标识与所述程序的程序标识相同;所述特征数据包括偏移代码和特征代码;检测结果获得模块,用于获取所述目标进程中内存块的属性参数;以所述属性参数为可执行的内存块为对象,执行所述偏移代码,定位该内存块中的待验证程序代码;当该内存块中的待验证程序代码与所述特征代码匹配时,确定所述待验证程序代码为恶意代码,所述检测结果包括所述恶意代码的信息。
12.根据权利要求11所述的装置,其特征在于,所述DLL文件加载模块,具体用于基于配置文件中的程序标识,监测到所述程序标识对应的程序有启动指令;或用于在监测到有程序的启动指令时,所述程序的程序标识在所述配置文件中。
13.根据权利要求11所述的装置,其特征在于,所述特征数据包括查找执行条件与特征代码,所述查找执行条件至少包括当前运行内存块为指定内存块、当前运行代码为指定代码以及当前调用函数为指定函数中的一项;
所述检测结果获得模块,还用于当所述目标进程的运行数据满足所述查找执行条件时,查找所述目标进程的程序代码中是否存在与所述特征代码匹配的恶意代码,得到检测结果。
14.根据权利要求11所述的装置,其特征在于,所述检测结果获得模块,还用于验证所述属性参数为可执行的内存块的程序代码;当验证结果为存在与所述恶意代码匹配的程序代码时,确定存在恶意代码,所述检测结果包括存在恶意代码的检测结果。
15.根据权利要求14所述的装置,其特征在于,所述检测结果获得模块,还用于当验证结果为不存与所述恶意代码匹配的程序代码时,按所述目标进程的执行顺序,验证下一内存块是否存在恶意代码。
16.根据权利要求11所述的装置,其特征在于,所述检测结果获得模块,还用于当属性参数为可执行的内存块中均不存在与所述恶意代码匹配的程序代码时,确定不存在恶意代码,所述检测结果包括不存在恶意代码的检测结果。
17.根据权利要求16所述的装置,其特征在于,所述检测结果获得模块,还用于当所述配置文件中携带的恶意代码处理策略为禁止恶意代码的所有功能时,识别所述恶意代码信息中恶意代码的入口代码,并将所述入口代码的执行逻辑修改为返回;或用于当所述配置文件中携带的恶意代码处理策略为禁止恶意代码的指定功能时,识别所述恶意代码信息中恶意代码指定功能的调用函数,修改所述调用函数的返回值。
18.根据权利要求11所述的装置,其特征在于,所述恶意代码的特征数据包括行为特征、偏移代码和特征代码;
所述检测结果获得模块,还用于当所述行为特征为挂钩系统函数时,获取挂钩的系统函数在所述目标进程中对应的入口代码;当检测到所述入口代码中的系统函数关联有挂钩跳转代码时,跳转至所述挂钩跳转代码对应的执行函数,确定目标内存块,所述目标内存块为所述执行函数所在的内存块;以所述目标内存块为对象,执行所述偏移代码,定位目标内存块中的待验证程序代码;当所述目标内存块中的待验证程序代码与所述特征代码匹配成功时,确定存在恶意代码,所述检测结果包括存在恶意代码的检测结果。
19.根据权利要求11所述的装置,其特征在于,所述配置文件为云服务器发送的更新配置文件。
20.根据权利要求19所述的装置,其特征在于,所述恶意代码检测装置还包括非正常行为监测模块,用于当监测到程序运行过程中存在非正常行为时,提取与所述非正常行为对应的恶意代码;将携带有所述恶意代码和该程序的程序标识的监测反馈消息发送至云服务器,所述监测反馈消息用于使所述云服务器更新初始配置文件。
21.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至10中任一项所述方法的步骤。
22.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至10中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910641655.XA CN112241529B (zh) | 2019-07-16 | 2019-07-16 | 恶意代码检测方法、装置、存储介质和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910641655.XA CN112241529B (zh) | 2019-07-16 | 2019-07-16 | 恶意代码检测方法、装置、存储介质和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112241529A CN112241529A (zh) | 2021-01-19 |
CN112241529B true CN112241529B (zh) | 2024-03-29 |
Family
ID=74167255
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910641655.XA Active CN112241529B (zh) | 2019-07-16 | 2019-07-16 | 恶意代码检测方法、装置、存储介质和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112241529B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113209630B (zh) * | 2021-05-14 | 2022-09-30 | 上海完美时空软件有限公司 | 游戏应用的抓帧防御方法及装置、存储介质、计算机设备 |
CN114707150B (zh) * | 2022-03-21 | 2023-05-09 | 安芯网盾(北京)科技有限公司 | 一种恶意代码检测方法、装置、电子设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101304409A (zh) * | 2008-06-28 | 2008-11-12 | 华为技术有限公司 | 恶意代码检测方法及系统 |
CN102004882A (zh) * | 2010-11-26 | 2011-04-06 | 北京安天电子设备有限公司 | 远程线程注入型木马的检测和处理的方法和装置 |
CN106991324A (zh) * | 2017-03-30 | 2017-07-28 | 兴华永恒(北京)科技有限责任公司 | 一种基于内存保护类型监控的恶意代码跟踪识别方法 |
-
2019
- 2019-07-16 CN CN201910641655.XA patent/CN112241529B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101304409A (zh) * | 2008-06-28 | 2008-11-12 | 华为技术有限公司 | 恶意代码检测方法及系统 |
CN102004882A (zh) * | 2010-11-26 | 2011-04-06 | 北京安天电子设备有限公司 | 远程线程注入型木马的检测和处理的方法和装置 |
CN106991324A (zh) * | 2017-03-30 | 2017-07-28 | 兴华永恒(北京)科技有限责任公司 | 一种基于内存保护类型监控的恶意代码跟踪识别方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112241529A (zh) | 2021-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110460571B (zh) | 业务系统漏洞处理方法、装置、计算机设备和存储介质 | |
US9652632B2 (en) | Method and system for repairing file at user terminal | |
CN107783776B (zh) | 固件升级包的处理方法及装置、电子设备 | |
CN107330328B (zh) | 防御病毒攻击的方法、装置及服务器 | |
US20180218153A1 (en) | Comparing structural information of a snapshot of system memory | |
CN112241529B (zh) | 恶意代码检测方法、装置、存储介质和计算机设备 | |
US20170277887A1 (en) | Information processing apparatus, information processing method, and computer readable medium | |
CN115221524B (zh) | 业务数据保护方法、装置、设备及存储介质 | |
CN108762787B (zh) | 软件修复方法、装置、计算机设备和存储介质 | |
CN105791250B (zh) | 应用程序检测方法及装置 | |
CN106302531B (zh) | 安全防护方法、装置及终端设备 | |
JP2006146600A (ja) | 動作監視サーバ、端末装置及び動作監視システム | |
CN112579330B (zh) | 操作系统异常数据的处理方法、装置及设备 | |
CN112422527A (zh) | 变电站电力监控系统的安全防护系统、方法和装置 | |
CN105791221B (zh) | 规则下发方法及装置 | |
CN116049822A (zh) | 应用程序的监管方法、系统、电子设备及存储介质 | |
CN108762801B (zh) | 软件修复包处理方法、装置、计算机设备和存储介质 | |
CN112054927B (zh) | 基于指纹校验防篡改的网站更新方法、装置以及电子设备 | |
CN115118504A (zh) | 知识库更新方法、装置、电子设备及存储介质 | |
CN110798356B (zh) | 固件监控方法、装置、存储介质和计算机设备 | |
CN113872959A (zh) | 一种风险资产等级判定和动态降级方法和装置及设备 | |
CN113157543A (zh) | 一种可信度量方法及装置、服务器、计算机可读存储介质 | |
CN106911678B (zh) | 一种病毒检测方法及装置 | |
CN111538990B (zh) | 一种互联网分析系统 | |
CN117272305B (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 |