CN106682493B - 一种防止进程被恶意结束的方法、装置及电子设备 - Google Patents

一种防止进程被恶意结束的方法、装置及电子设备 Download PDF

Info

Publication number
CN106682493B
CN106682493B CN201510757691.4A CN201510757691A CN106682493B CN 106682493 B CN106682493 B CN 106682493B CN 201510757691 A CN201510757691 A CN 201510757691A CN 106682493 B CN106682493 B CN 106682493B
Authority
CN
China
Prior art keywords
function
memory address
nuclear layer
inner nuclear
handle
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
CN201510757691.4A
Other languages
English (en)
Other versions
CN106682493A (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.)
Zhuhai Baoqu Technology Co Ltd
Original Assignee
Zhuhai Seal Interest 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 Zhuhai Seal Interest Technology Co Ltd filed Critical Zhuhai Seal Interest Technology Co Ltd
Priority to CN201510757691.4A priority Critical patent/CN106682493B/zh
Publication of CN106682493A publication Critical patent/CN106682493A/zh
Application granted granted Critical
Publication of CN106682493B publication Critical patent/CN106682493B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • 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
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements

Abstract

本发明的实施例公开一种防止进程被恶意结束的方法、装置及电子设备。方法包括:通过反汇编内核层中结束进程的函数,确定内核层中结束进程的函数调用获取句柄对应内核对象的函数时的内存地址;注入预先设置的钩子函数,监测到结束进程的函数发出进程结束请求时,钩住进程结束请求调用获取句柄对应内核对象的函数时的内存地址;利用钩住的内存地址,截获结束进程的函数的进程句柄的内核对象,依据截获的所述内核对象,获取进程路径信息;在获取的所述进程路径信息对应的进程为预先设置的安全防护进程时,拒绝所述内核层中结束进程的函数的进程结束请求。应用本发明,可以提升系统的安全防护效率和安全性。

Description

一种防止进程被恶意结束的方法、装置及电子设备
技术领域
本发明涉及计算机安全技术,尤其涉及一种防止进程被恶意结束的方法、装置及电子设备。
背景技术
随着Windows系统内核层技术细节的逐渐公开,越来越多的木马病毒等恶意应用程序开始使用内核层驱动程序来保护自身的进程,受内核层驱动程序保护的恶意应用程序的进程,可以结束(杀死)Windows系统中的安全防护进程,例如,杀毒软件或防火墙软件的进程,从而使得恶意应用程序的进程可以根据恶意应用程序提供者的意图,对用户的进程或系统进程进行恶意攻击,可能造成计算机运行不稳定,甚至可能给用户带来非常大的经济损失,例如,隐私信息的泄露以及物质财产的被窃取。其中,进程(Process)是计算机中的应用程序关于数据集合上的一次运行活动,是Windows系统进行资源分配和调度的基本单位,是Windows系统结构的基础。在早期面向进程设计的计算机结构中,进程是应用程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。也就是说,应用程序是指令、数据及其组织形式的描述,进程是应用程序的实体。
进程防杀是保护用户的进程、Windows系统中重要的系统进程以及安全防护进程不被非法结束的一种方法,目前,常用的进程防杀是利用系统服务描述符表钩子(SSDTHOOK,System Services Descriptor Table HOOK)技术。其中,SSDT是一将ring3,即应用层的Win32 API和ring0,即内核层的内核API联系起来的描述符表,SSDT并不仅仅只包含一个庞大的函数地址索引表,还包含着一些其它有用的信息,例如,地址索引的基地址、服务函数个数等。通过修改SSDT的函数地址,可以对常用Windows函数及API进行钩子处理,从而实现对进程的过滤、监控。例如,基于主机的入侵防御系统(HIPS,Host-based IntrusionPrevention System)软件、防毒软件软件、系统监控软件、注册表监控软件等软件利用SSDTHOOK技术防止安全防护进程被恶意应用程序的进程结束,从而有效防控恶意进程对用户的进程或系统进程的恶意攻击。
但在Windows系统的内核层中,还提供了几个常用的结束进程的函数,例如,NtTerminateProcess函数、NtTerminateJobObject函数以及NtAssignProcessToJobObject函数,恶意应用程序可以通过直接调用这三个函数来结束目标进程。由于这三个函数处于内核层,目前的SSDT HOOK技术不能有效防止恶意应用程序通过调用Windows系统的内核层中结束进程的函数的方式结束进程,从而导致安全防护进程,例如金山毒霸相关的安全防护进程被恶意结束,使得金山毒霸的防护功能失效,恶意应用程序可以进行恶意攻击,导致Windows系统的安全防护效率较低,安全性不高。
发明内容
有鉴于此,本发明实施例提供一种防止进程被恶意结束的方法、装置及电子设备,提升系统的安全防护效率和安全性。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供一种防止进程被恶意结束的方法,包括:
通过反汇编内核层中结束进程的函数,确定所述内核层中结束进程的函数调用获取句柄对应内核对象的函数时的内存地址;
在所述内核层中注入预先设置的钩子函数,在所述钩子函数监测到所述内核层中结束进程的函数发出进程结束请求时,钩住所述进程结束请求调用获取句柄对应内核对象的函数时的所述内存地址;
利用钩住的所述内存地址,截获所述内核层中结束进程的函数用于结束进程的进程句柄的内核对象,依据截获的所述内核对象,获取进程路径信息;
在获取的所述进程路径信息对应的进程为预先设置的安全防护进程时,拒绝所述内核层中结束进程的函数的进程结束请求。
优选地,所述通过反汇编内核层中结束进程的函数,确定所述内核层中结束进程的函数调用获取句柄对应内核对象的函数时的内存地址包括:
反汇编内核层中结束进程的函数的内存地址;
遍历反汇编得到的内核层中结束进程的函数的内存地址,提取调用所述获取句柄对应内核对象的函数的汇编指令对应的内存地址,得到所述调用获取句柄对应内核对象的函数时的内存地址。
优选地,所述内核层中结束进程的函数包括:NtTerminateProcess函数、NtTerminateJobObject函数和NtAssignProcessToJobObject函数。
优选地,所述提取调用所述获取句柄对应内核对象的函数的汇编指令对应的内存地址包括:
以反汇编获取的NtTerminateProcess函数的内存地址作为搜索源进行查找;
找到预定位置的汇编指令对应的内存地址。
优选地,所述汇编指令为进程句柄的汇编指令,具体值为0xFF,0x75,x0C,0xE8。
优选地,所述获取句柄对应内核对象的函数为ObReferenceObjectByHandle函数。
第二方面,本发明实施例提供一种防止进程被恶意结束的装置,包括:反汇编模块、钩子模块、截获模块以及进程处理模块,其中,
反汇编模块,用于通过反汇编内核层中结束进程的函数,确定所述内核层中结束进程的函数调用获取句柄对应内核对象的函数时的内存地址;
钩子模块,用于在所述内核层中注入预先设置的钩子函数,在所述钩子函数监测到所述内核层中结束进程的函数发出进程结束请求时,钩住所述进程结束请求调用获取句柄对应内核对象的函数时的所述内存地址;
截获模块,用于利用钩住的所述内存地址,截获所述内核层中结束进程的函数用于结束进程的进程句柄的内核对象,依据截获的所述内核对象,获取进程路径信息;
进程处理模块,用于在获取的所述进程路径信息对应的进程为预先设置的安全防护进程时,拒绝所述内核层中结束进程的函数的进程结束请求。
优选地,所述反汇编模块包括:反汇编单元、遍历单元、提取单元以及获取单元,其中,
反汇编单元,用于反汇编内核层中结束进程的函数的内存地址;
遍历单元,用于遍历反汇编得到的内核层中结束进程的函数的内存地址;
提取单元,用于提取调用所述获取句柄对应内核对象的函数的汇编指令对应的内存地址;
获取单元,用于将提取单元提取的内存地址作为所述调用获取句柄对应内核对象的函数时的内存地址。
优选地,所述内核层中结束进程的函数包括:NtTerminateProcess函数、NtTerminateJobObject函数和NtAssignProcessToJobObject函数。
优选地,所述提取单元包括:搜索子单元以及提取子单元,其中,
搜索子单元,用于以反汇编获取的NtTerminateProcess函数的内存地址作为搜索源进行查找;
提取子单元,用于找到预定位置的汇编指令对应的内存地址作为所述调用获取句柄对应内核对象的函数时的内存地址。
优选地,所述汇编指令为进程句柄的汇编指令,具体值为0xFF,0x75,x0C,0xE8。
优选地,所述获取句柄对应内核对象的函数为ObReferenceObjectByHandle函数。
第三方面,本发明实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一所述的防止进程被恶意结束的方法。
本发明实施例提供的防止进程被恶意结束的方法、装置及电子设备,通过通过反汇编内核层中结束进程的函数,确定内核层中结束进程的函数调用获取句柄对应内核对象的函数时的内存地址;注入预先设置的钩子函数,监测到结束进程的函数发出进程结束请求时,钩住进程结束请求调用获取句柄对应内核对象的函数时的所述内存地址;利用钩住的内存地址,截获结束进程的函数的进程句柄的内核对象,依据截获的所述内核对象,获取进程路径信息;在获取的所述进程路径信息对应的进程为预先设置的安全防护进程时,拒绝所述内核层中结束进程的函数的进程结束请求。这样,当恶意应用程序调用结束进程的函数来获取进程句柄的进程内核对象以结束进程内核对象对应的进程时,就会先调用注入在内核层中的钩子函数,由钩子函数依据进程句柄的进程内核对象进行处理,实现了防止相关安全防护进程被恶意应用程序结束的目的,使得安全防护进程能够有效防护恶意应用程序的攻击,有效提升Windows系统的安全防护效率以及安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例防止进程被恶意结束的方法流程示意图;
图2为本发明实施例防止进程被恶意结束的装置结构示意图;
图3为本发明实施例的反汇编模块结构示意图;
图4为本发明电子设备一个实施例的结构示意图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1为本发明实施例防止进程被恶意结束的方法流程示意图。参见图1,该方法包括:
步骤101,通过反汇编内核层中结束进程的函数,确定所述内核层中结束进程的函数调用获取句柄对应内核对象的函数时的内存地址;
本步骤中,作为一可选实施例,内核层中结束进程的函数包括:NtTerminateProcess函数、NtTerminateJobObject函数和NtAssignProcessToJobObject函数。
本发明实施例中,作为一可选实施例,获取句柄对应内核对象的函数为ObReferenceObjectByHandle函数。
反汇编(Disassembly)是将目标代码转为汇编语言代码的过程,即将机器语言代码转换为汇编语言代码、低级语言代码转为高级语言代码的过程,经常应用于软件破解(例如,找到软件是如何注册的,从而解出软件的注册码或者编写注册机)、外挂技术、病毒分析、逆向工程、软件汉化等领域。
本发明实施例中,通过分析NtTerminateProcess函数、NtTerminateJobObject函数和NtAssignProcessToJobObject函数,虽然三个函数的参数以及处理的方式各不相同,但该三个结束进程的函数都具有一个共同的特点,即都会调用ObReferenceObjectByHandle函数来获取需要结束的目标进程的内核对象。因而,通过反汇编NtTerminateProcess函数、NtTerminateJobObject函数和NtAssignProcessToJobObject函数,获取三个函数调用获取句柄对应内核对象的函数,即NtAssignProcessToJobObject函数时的内存地址,从而在后续应用中,依据获取的三个函数调用的内存地址,确定为调用ObReferenceObjectByHandle函数时,对调用的ObReferenceObjectByHandle函数进行拦截并处理,使之按照预先设置的策略执行获取需要结束的目标进程的内核对象的流程,从而可以有效防止安全防护进程被三个函数恶意结束。
作为一可选实施例,通过反汇编内核层中结束进程的函数,确定所述内核层中结束进程的函数调用获取句柄对应内核对象的函数时的内存地址包括:
A01,反汇编内核层中结束进程的函数的内存地址;
A02,遍历反汇编得到的内核层中结束进程的函数的内存地址,提取调用所述获取句柄对应内核对象的函数的汇编指令对应的内存地址,得到所述调用获取句柄对应内核对象的函数时的内存地址。
本步骤中,以NtTerminateProcess函数为例,NtTerminateProcess函数中有一参数是用于结束进程的进程句柄,即hProcess,恶意应用程序通过NtTerminateProcess函数结束进程时,需要调用ObReferenceObjectByHandle函数来获取进程句柄(hProcess)的进程内核对象,由于进程句柄在NtTerminateProcess函数的参数列表中的位置是固定的,因而,该进程句柄的汇编指令也是固定的,即为0xFF,0x75,x0C,0xE8,也就是反汇编NtTerminateProcess函数的内存地址,找到预定位置(0xFF,0x75,x0C,0xE8)的汇编指令,再找到该指令0xFF,0x75,x0C,0xE8对应的内存地址即可,也就是说,如果结束进程的函数调用的内存地址中包含指令0xFF,0x75,x0C,0xE8对应的内存地址时,表明NtTerminateProcess函数开始调用ObReferenceObjectByHandle函数来获取进程句柄的进程内核对象,以结束进程内核对象对应的进程。因而,本发明实施例中,作为一可选实施例在,提取调用所述获取句柄对应内核对象的函数的汇编指令对应的内存地址包括:
以反汇编获取的NtTerminateProcess函数的内存地址作为搜索源进行查找;
找到汇编指令0xFF,0x75,x0C,0xE8对应的内存地址。
本发明实施例中,可以从反汇编获取的NtTerminateProcess函数的内存地址作为开始地址,进行搜索,找到汇编指令0xFF,0x75,x0C,0xE8对应的内存地址,得到NtTerminateProcess函数调用ObReferenceObjectByHandle函数来获取用于结束进程的hProcess的进程内核对象时的汇编指令对应的内存地址,从而获取在NtTerminateProcess函数中调用ObReferenceObjectByHandle函数来获取hProcess的进程内核对象时的内存地址。
本发明实施例中,关于得到NtTerminateJobObject函数和NtAssignProcessToJobObject函数调用ObReferenceObjectByHandle函数来获取进程内核对象时的汇编指令对应的内存地址的流程,与得到NtTerminateProcess函数调用ObReferenceObjectByHandle函数来获取进程内核对象时的汇编指令对应的内存地址相类似,在此略去详述。
步骤102,在所述内核层中注入预先设置的钩子函数,在所述钩子函数监测到所述内核层中结束进程的函数发出进程结束请求时,钩住所述进程结束请求调用获取句柄对应内核对象的函数时的所述内存地址;
本步骤中,注入的钩子(Hook)函数用于监听所述结束进程的函数的调用相关操作,并在调用的相关操作与预先设置的操作相匹配时,拦截该调用的相关操作,转由注入的钩子函数对该调用的相关操作进行处理,并返回相应处理结果。作为一可选实施例,可在金山毒霸防御驱动加载时注入,其中,
Hook函数是Windows系统中消息处理机制的一段程序代码段,应用程序可以通过该程序代码段,设置子程序代码段以监视指定窗口的某种消息(操作),而且所监视的指定窗口可以是其他进程所创建的。Hook函数具有的钩子机制通过Windows系统调用,将具有优先控制权的Hook函数挂入Windows系统,允许Hook函数截获Window系统发出的消息或特定事件,每当Windows系统中消息或特定事件发出,在没有到达目的窗口前,Hook函数能够先捕获该消息或特定事件,从而可以加工处理(改变)该消息或特定事件,也可以不作处理而继续传递,还可以强制结束消息或特定事件的传递。
本发明实施例中,Hook函数监测到所述内核层中结束进程的函数发出进程结束请求,调用获取句柄对应内核对象的函数以获取hProcess的进程内核对象时,通过钩住结束进程的函数调用获取句柄对应内核对象的函数时的内存地址,使之在所监视的指定窗口中相应处理函数处理该消息之前处理该消息,即接替所监视的指定窗口中相应处理函数(例如,NtTerminateProcess函数)调用内存地址后的所有操作。
本发明实施例中,通过获取NtTerminateProcess函数、NtTerminateJobObject函数或NtAssignProcessToJobObject函数调用ObReferenceObjectByHandle函数时的内存地址并Hook该内存地址,可以截获用于结束进程的进程句柄的内核对象。例如,通过获取NtTerminateProcess函数调用ObReferenceObjectByHandle函数时的内存地址,然后Hook该获取的内存地址,可以实现截获该NtTerminateProcess函数的内核对象。
步骤103,利用钩住的所述内存地址,截获所述内核层中结束进程的函数用于结束进程的进程句柄的内核对象,依据截获的所述内核对象,获取进程路径信息;
本步骤中,依据内核对象获取进程路径信息为公知技术,在此略去详述。
步骤104,在获取的所述进程路径信息对应的进程为预先设置的安全防护进程时,拒绝所述内核层中结束进程的函数的进程结束请求。
本步骤中,作为一可选实施例,安全防护进程可以是安全防护应用软件对应的进程,安全防护应用软件可以是金山毒霸等。例如,如果恶意应用程序通过上述三个函数中的任意一个调用ObReferenceObjectByHandle函数结束的是金山毒霸相关的安全防护进程,这样,将使得Windows系统中的金山毒霸的安全防护功能失效,不能进行有效的安全防护,从而使得恶意应用程序危害Windows系统,导致Windows系统处于危险之中。
本发明实施例中,通过获取进程句柄的内核对象对应的进程路径信息,再通过进程路径信息获取相应的进程,然后判断进程路径信息对应的进程是否是金山毒霸相关的安全防护进程,如果是,则返回拒绝,使得恶意应用程序通过Windows系统内核层中上述三个函数结束进程的操作失败,这样,安全防护软件的安全防护进程就不会被结束,安全防护软件的整个防御处理逻辑生效,从而保护Windows系统不被恶意应用程序破坏,给用户创建和维护一个安全的Windows系统环境。
本发明实施例中,在获取的所述进程路径信息对应的进程不为预先设置的安全防护进程时,允许所述内核层中结束进程的函数的进程结束请求,结束所述进程路径信息对应的进程。
由上述可见,本发明实施例防止进程被恶意结束的方法,反汇编内核层中结束进程的函数,例如NtTerminateProcess函数、NtTerminateJobObj ect函数和NtAssignProcessToJobObject函数的内存地址,通过相关的汇编指令特征,从三个函数的反汇编内存地址中,获取三个函数调用ObReferenceObjectByHandle函数时的内存地址,从而对调用ObReferenceObjectByHandle函数时的内存地址进行Hook,当恶意应用程序调用NtTerminateProcess函数,NtTerminateProcess函数调用ObReferenceObjectByHandle函数来获取进程句柄的进程内核对象以结束进程内核对象对应的进程时,就会先调用注入在内核层中的金山毒霸防御驱动的Hook函数,因而,可以通过Hook函数获取进程句柄的进程内核对象,依据进程句柄的进程内核对象得到进程路径信息,然后判断该进程路径信息对应的进程是否是需要保护的安全防护进程,如果是则返回拒绝,实现了防止相关安全防护进程被恶意应用程序结束的目的,作为SSDT HOOK安全防护技术的有益补充,从而保障安全防护进程不被恶意应用程序结束,使得安全防护进程能够有效防护恶意应用程序的攻击,提升Windows系统的安全防护效率以及安全性。
图2为本发明实施例防止进程被恶意结束的装置结构示意图。参见图2,该装置包括:反汇编模块201、钩子模块202、截获模块203以及进程处理模块204,其中,
反汇编模块201,用于通过反汇编内核层中结束进程的函数,确定所述内核层中结束进程的函数调用获取句柄对应内核对象的函数时的内存地址;
本发明实施例中,内核层中结束进程的函数包括:NtTerminateProcess函数、NtTerminateJobObject函数和NtAssignProcessToJobObject函数。
所述获取句柄对应内核对象的函数为ObReferenceObjectByHandle函数。
本发明实施例中,结束进程的函数中有一参数是用于结束进程的进程句柄,恶意应用程序通过结束进程的函数结束进程时,需要调用获取句柄对应内核对象的函数来获取进程句柄的进程内核对象以结束进程,而进程句柄在结束进程的函数的参数列表中的位置是固定的,因而,该进程句柄的汇编指令也是固定的,通过获取汇编指令对应的内存地址,可以实现对结束进程的函数调用获取句柄对应内核对象的函数的监测。
钩子模块202,用于在所述内核层中注入预先设置的钩子函数,在所述钩子函数监测到所述内核层中结束进程的函数发出进程结束请求时,钩住所述进程结束请求调用获取句柄对应内核对象的函数时的所述内存地址;
截获模块203,用于利用钩住的所述内存地址,截获所述内核层中结束进程的函数用于结束进程的进程句柄的内核对象,依据截获的所述内核对象,获取进程路径信息;
进程处理模块204,用于在获取的所述进程路径信息对应的进程为预先设置的安全防护进程时,拒绝所述内核层中结束进程的函数的进程结束请求。
本发明实施例中,在获取的所述进程路径信息对应的进程不为预先设置的安全防护进程时,允许所述内核层中结束进程的函数的进程结束请求,结束所述进程路径信息对应的进程。
作为一可选实施例,图3为本发明实施例的反汇编模块结构示意图。参见图3,该反汇编模块包括:反汇编单元301、遍历单元302、提取单元303以及获取单元304,其中,
反汇编单元301,用于反汇编内核层中结束进程的函数的内存地址;
遍历单元302,用于遍历反汇编得到的内核层中结束进程的函数的内存地址;
提取单元303,用于提取调用所述获取句柄对应内核对象的函数的汇编指令对应的内存地址;
获取单元304,用于将提取单元提取的内存地址作为所述调用获取句柄对应内核对象的函数时的内存地址。
本发明实施例中,作为一可选实施例,提取单元303包括:搜索子单元以及提取子单元(图中未示出),其中,
搜索子单元,用于以反汇编获取的NtTerminateProcess函数的内存地址作为搜索源进行查找;
提取子单元,用于找到预定位置的汇编指令对应的内存地址作为所述调用获取句柄对应内核对象的函数时的内存地址。
本发明实施例中,作为一可选实施例,所述汇编指令为进程句柄的汇编指令,具体值为0xFF,0x75,x0C,0xE8。
本发明实施例还提供一种电子设备,所述电子设备包含前述任一实施例所述的装置。
图4为本发明电子设备一个实施例的结构示意图,可以实现本发明图1-3所示实施例的流程,如图4所示,上述电子设备可以包括:壳体41、处理器42、存储器43、电路板44和电源电路45,其中,电路板44安置在壳体41围成的空间内部,处理器42和存储器43设置在电路板44上;电源电路45,用于为上述电子设备的各个电路或器件供电;存储器43用于存储可执行程序代码;处理器42通过读取存储器43中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例所述的防止进程被恶意结束的方法。
处理器42对上述步骤的具体执行过程以及处理器42通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图1-3所示实施例的描述,在此不再赘述。
该电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子设备。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (11)

1.一种防止进程被恶意结束的方法,其特征在于,该方法包括:
通过反汇编内核层中结束进程的函数,确定所述内核层中结束进程的函数调用获取句柄对应内核对象的函数时的内存地址;
在所述内核层中注入预先设置的钩子函数,在所述钩子函数监测到所述内核层中结束进程的函数发出进程结束请求时,钩住所述进程结束请求调用获取句柄对应内核对象的函数时的所述内存地址;
利用钩住的所述内存地址,截获所述内核层中结束进程的函数用于结束进程的进程句柄的内核对象,依据截获的所述内核对象,获取进程路径信息;
在获取的所述进程路径信息对应的进程为预先设置的安全防护进程时,拒绝所述内核层中结束进程的函数的进程结束请求;
其中,所述通过反汇编内核层中结束进程的函数,确定所述内核层中结束进程的函数调用获取句柄对应内核对象的函数时的内存地址包括:
反汇编内核层中结束进程的函数的内存地址;
遍历反汇编得到的内核层中结束进程的函数的内存地址,提取调用所述获取句柄对应内核对象的函数的汇编指令对应的内存地址,得到所述调用获取句柄对应内核对象的函数时的内存地址。
2.根据权利要求1所述的方法,其特征在于,所述内核层中结束进程的函数包括:NtTerminateProcess函数、NtTerminateJobObject函数和NtAssignProcessToJobObject函数。
3.根据权利要求2所述的方法,其特征在于,所述提取调用所述获取句柄对应内核对象的函数的汇编指令对应的内存地址包括:
以反汇编获取的NtTerminateProcess函数的内存地址作为搜索源进行查找;
找到预定位置的汇编指令对应的内存地址。
4.根据权利要求3所述的方法,其特征在于,所述汇编指令为进程句柄的汇编指令,具体值为0xFF,0x75,x0C,0xE8。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述获取句柄对应内核对象的函数为ObReferenceObjectByHandle函数。
6.一种防止进程被恶意结束的装置,其特征在于,该装置包括:反汇编模块、钩子模块、截获模块以及进程处理模块,其中,
反汇编模块,用于通过反汇编内核层中结束进程的函数,确定所述内核层中结束进程的函数调用获取句柄对应内核对象的函数时的内存地址;
钩子模块,用于在所述内核层中注入预先设置的钩子函数,在所述钩子函数监测到所述内核层中结束进程的函数发出进程结束请求时,钩住所述进程结束请求调用获取句柄对应内核对象的函数时的所述内存地址;
截获模块,用于利用钩住的所述内存地址,截获所述内核层中结束进程的函数用于结束进程的进程句柄的内核对象,依据截获的所述内核对象,获取进程路径信息;
进程处理模块,用于在获取的所述进程路径信息对应的进程为预先设置的安全防护进程时,拒绝所述内核层中结束进程的函数的进程结束请求;
所述反汇编模块包括:反汇编单元、遍历单元、提取单元以及获取单元,其中,
反汇编单元,用于反汇编内核层中结束进程的函数的内存地址;
遍历单元,用于遍历反汇编得到的内核层中结束进程的函数的内存地址;
提取单元,用于提取调用所述获取句柄对应内核对象的函数的汇编指令对应的内存地址;
获取单元,用于将提取单元提取的内存地址作为所述调用获取句柄对应内核对象的函数时的内存地址。
7.根据权利要求6所述的装置,其特征在于,所述内核层中结束进程的函数包括:NtTerminateProcess函数、NtTerminateJobObject函数和NtAssignProcessToJobObject函数。
8.根据权利要求7所述的装置,其特征在于,所述提取单元包括:搜索子单元以及提取子单元,其中,
搜索子单元,用于以反汇编获取的NtTerminateProcess函数的内存地址作为搜索源进行查找;
提取子单元,用于找到预定位置的汇编指令对应的内存地址作为所述调用获取句柄对应内核对象的函数时的内存地址。
9.根据权利要求8所述的装置,其特征在于,所述汇编指令为进程句柄的汇编指令,具体值为0xFF,0x75,x0C,0xE8。
10.根据权利要求6至9任一项所述的装置,其特征在于,所述获取句柄对应内核对象的函数为ObReferenceObjectByHandle函数。
11.一种电子设备,其特征在于,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行权利要求1-5任一所述的防止进程被恶意结束的方法。
CN201510757691.4A 2015-11-06 2015-11-06 一种防止进程被恶意结束的方法、装置及电子设备 Active CN106682493B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510757691.4A CN106682493B (zh) 2015-11-06 2015-11-06 一种防止进程被恶意结束的方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510757691.4A CN106682493B (zh) 2015-11-06 2015-11-06 一种防止进程被恶意结束的方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN106682493A CN106682493A (zh) 2017-05-17
CN106682493B true CN106682493B (zh) 2019-08-27

Family

ID=58863517

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510757691.4A Active CN106682493B (zh) 2015-11-06 2015-11-06 一种防止进程被恶意结束的方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN106682493B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107885505B (zh) * 2017-09-30 2021-05-14 浙江福山电子科技有限责任公司 一种代码定位方法
CN108762826B (zh) * 2018-04-23 2021-09-28 厦门市美亚柏科信息股份有限公司 进程隐藏方法及计算机可读存储介质
CN109711153B (zh) * 2018-12-26 2021-03-19 北京北信源信息安全技术有限公司 一种windows进程保护方法及系统
CN114707150B (zh) * 2022-03-21 2023-05-09 安芯网盾(北京)科技有限公司 一种恶意代码检测方法、装置、电子设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101414341A (zh) * 2007-10-15 2009-04-22 北京瑞星国际软件有限公司 一种软件自我保护的方法
CN101770551A (zh) * 2008-12-30 2010-07-07 中国科学院软件研究所 一种基于硬件模拟器的处理隐藏进程的方法
CN101984450A (zh) * 2010-12-15 2011-03-09 北京安天电子设备有限公司 恶意代码检测方法和系统
CN102156834A (zh) * 2011-04-18 2011-08-17 北京思创银联科技股份有限公司 实现进程防杀的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101414341A (zh) * 2007-10-15 2009-04-22 北京瑞星国际软件有限公司 一种软件自我保护的方法
CN101770551A (zh) * 2008-12-30 2010-07-07 中国科学院软件研究所 一种基于硬件模拟器的处理隐藏进程的方法
CN101984450A (zh) * 2010-12-15 2011-03-09 北京安天电子设备有限公司 恶意代码检测方法和系统
CN102156834A (zh) * 2011-04-18 2011-08-17 北京思创银联科技股份有限公司 实现进程防杀的方法

Also Published As

Publication number Publication date
CN106682493A (zh) 2017-05-17

Similar Documents

Publication Publication Date Title
CN106709325B (zh) 一种监控程序的方法及装置
CN101873318B (zh) 针对应用基础支撑平台上应用系统的应用与数据保全方法
CN105844146B (zh) 一种保护驱动程序的方法、装置及电子设备
CN106682493B (zh) 一种防止进程被恶意结束的方法、装置及电子设备
EP3091466B1 (en) Identification device, identification method, and identification program
EP3270319B1 (en) Method and apparatus for generating dynamic security module
CN105760787B (zh) 用于检测随机存取存储器中的恶意代码的系统及方法
CN110417768B (zh) 一种僵尸网络的跟踪方法及装置
WO2017071148A1 (zh) 基于云计算平台的智能防御系统
WO2018017498A1 (en) Inferential exploit attempt detection
CN107566401B (zh) 虚拟化环境的防护方法及装置
CN111651754A (zh) 入侵的检测方法和装置、存储介质、电子装置
CN111191243A (zh) 一种漏洞检测方法、装置和存储介质
CN102222292B (zh) 一种手机支付保护方法
CN106127031A (zh) 一种保护进程的方法、装置及电子设备
CN107908957B (zh) 一种智能终端的安全运行管理方法及系统
CN202652255U (zh) 一种sql注入安全防护系统
US10339307B2 (en) Intrusion detection system in a device comprising a first operating system and a second operating system
CN110099041A (zh) 一种物联网防护方法及设备、系统
CN105844148A (zh) 一种保护操作系统的方法、装置及电子设备
CN112398784B (zh) 防御漏洞攻击的方法及装置、存储介质、计算机设备
US10599845B2 (en) Malicious code deactivating apparatus and method of operating the same
CN105550580B (zh) 一种窗口搜索方法和装置
CN112351008A (zh) 网络攻击分析方法、装置、可读存储介质及计算机设备
CN111680294A (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20181218

Address after: 519031 Room 105-53811, No. 6 Baohua Road, Hengqin New District, Zhuhai City, Guangdong Province

Applicant after: Zhuhai Leopard Technology Co.,Ltd.

Address before: 519070, six level 601F, 10 main building, science and technology road, Tangjia Bay Town, Zhuhai, Guangdong.

Applicant before: Zhuhai Juntian Electronic Technology Co.,Ltd.

Applicant before: BEIJING KINGSOFT INTERNET SECURITY SOFTWARE Co.,Ltd.

GR01 Patent grant
GR01 Patent grant