CN106203087B - 注入防护方法、系统、终端以及存储介质 - Google Patents
注入防护方法、系统、终端以及存储介质 Download PDFInfo
- Publication number
- CN106203087B CN106203087B CN201510212143.3A CN201510212143A CN106203087B CN 106203087 B CN106203087 B CN 106203087B CN 201510212143 A CN201510212143 A CN 201510212143A CN 106203087 B CN106203087 B CN 106203087B
- Authority
- CN
- China
- Prior art keywords
- injection
- protection
- data
- module
- injected
- 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
Images
Landscapes
- Infusion, Injection, And Reservoir Apparatuses (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种注入防护方法和系统,所述方法包括:将包括预设注入防护规则的防护数据注入目标进程的第一个注入位置,若检测到所述目标进程的注入事件,则运行所述目标进程的第一个注入位置的防护数据,获取所述预设注入防护规则,根据所述预设注入防护规则对所述目标进程进行注入防护。实施本发明,无需修改应用的原程序源代码逻辑,即可根据所述预设注入防护规则对所述目标进程进行注入防护,如拦截不允许注入的数据,可使注入防护的通用性更好、适用性更高,适用到更大范围的应用防护中。
Description
技术领域
本发明涉及信息安全技术领域,特别是涉及一种注入防护方法和系统。
背景技术
目前很多应用的进程防护方法,会通过修改应用的原程序源代码逻辑拦截 DLL加载,以防止第三方DLL注入应用的主进程,实现保护应用安全的目的。
但是,上述进程防护方法需要修改应用的原程序源代码逻辑拦截DLL加载,导致进程防护方法的通用性差、适用性低。
发明内容
基于此,有必要针对上述进程防护方法需要修改应用的原程序源代码逻辑拦截DLL加载,导致进程防护方法的通用性差、适用性低的问题,提供一种注入防护方法和系统。
一种注入防护方法,包括以下步骤:
将包括预设注入防护规则的防护数据注入目标进程的第一个注入位置;
若检测到所述目标进程的注入事件,则运行所述目标进程的第一个注入位置的防护数据,获取所述预设注入防护规则;
根据所述预设注入防护规则对所述目标进程进行注入防护。
一种注入防护系统,包括:
防护数据注入模块,用于将包括预设注入防护规则的防护数据注入目标进程的第一个注入位置;
防护数据运行模块,用于在检测到所述目标进程的注入事件时,运行所述目标进程的第一个注入位置的防护数据,获取所述预设注入防护规则;
注入防护模块,用于根据所述预设注入防护规则对所述目标进程进行注入防护。
上述注入防护方法和系统,将包括预设注入防护规则的防护数据注入目标进程的第一个注入位置,若检测到所述目标进程的注入事件,则运行所述目标进程的第一个注入位置的防护数据,获取所述预设注入防护规则,根据所述预设注入防护规则对所述目标进程进行注入防护,无需修改应用的原程序源代码逻辑,即可根据所述预设注入防护规则对所述目标进程进行注入防护,如拦截不允许注入的数据,可使注入防护的通用性更好、适用性更高,适用到更大范围的应用防护中。
附图说明
图1是本发明实施例的注入防护方法的实施环境的结构示意图;
图2是本发明注入防护方法第一实施方式的流程示意图;
图3是本发明注入防护方法第二实施方式的流程示意图;
图4是本发明注入防护方法第三实施方式的流程示意图;
图5是本发明注入防护系统第一实施方式的结构示意图;
图6是本发明注入防护系统第二实施方式的结构示意图;
图7是本发明注入防护系统第三实施方式的结构示意图;
图8是能实现本发明实施例的一个计算机系统的模块图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
可以理解,本发明所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。
请参阅图1,图1是本发明实施例的注入防护方法的实施环境的结构示意图。
图1所示实施环境用于实现本发明任意实施例或实施方式所述的注入防护方法,包括终端120、目标进程、加载服务器140和防护规则服务器160,所述终端与加载服务器140和/或防护规则服务器160通过无线网络或有限网络连接。
其中,终端120可包括智能手机、台式机、笔记本、个人数字助理、平板电脑等终端设备中的至少一种,装设有本发明注入防护方法用于防护的目标进程。
防护规则服务器160,可预先生成各种预设注入防护规则。
加载服务器140,可存储用于启动目标进程的进程加载器(Launch_bin.exe),进程加载器可用于从防护规则服务器拉取各种预设注入防护规则,将拉取的各种预设注入防护规则转换为防护数据,启动所述目标进程。
终端120,可通过无线网络或有线网络从加载服务器140请求进程加载器,通过进程加载器启动所述目标进程,将所述防护数据注入所述目标进程的第一个注入位置,以使得所述防护数据成为所述目标进程的第一个注入文件,可监听所述目标进程的所有注入数据。
本实施环境,可减少终端120的运行消耗,加快注入防护速度,提高注入防护效率,还可提高注入防护的通用性更好、适用性更高,适用到更大范围的应用防护中。
在一个实施例中,进程加载器的命名方式为<目标进程文件名>+<_Bin>+ <.exe>。进程加载器运行后,可将<_Bin.exe>替换成<.exe>,作为目标进程启动。
进一步地,进程加载器可用DetourCreateProcessWithDllEx启动目标进程并将防护数据注入目标进程导入表的第一个位置。
请参阅图2,图2本发明注入防护方法第一实施方式的流程示意图。
本实施方式所述的注入防护方法,包括以下步骤:
步骤S201,将包括预设注入防护规则的防护数据注入目标进程的第一个注入位置。
步骤S202,若检测到所述目标进程的注入事件,则运行所述目标进程的第一个注入位置的防护数据,获取所述预设注入防护规则。
步骤S203,根据所述预设注入防护规则对所述目标进程进行注入防护。
本实施方式,将包括预设注入防护规则的防护数据注入目标进程的第一个注入位置,若检测到所述目标进程的注入事件,则运行所述目标进程的第一个注入位置的防护数据,获取所述预设注入防护规则,根据所述预设注入防护规则对所述目标进程进行注入防护,无需修改应用的原程序源代码逻辑,即可根据所述预设注入防护规则对所述目标进程进行注入防护,如拦截不允许注入的数据,可使注入防护的通用性更好、适用性更高,适用到更大范围的应用防护中。
其中,对于步骤S201,所述目标进程的第一个注入位置为所述目标进程的第一组注入数据所占据的地址。所述预设注入防护规则包括判断待注入数据为允许注入的数据的规则、判断待注入数据为禁止注入的数据的规则和判断待注入数据为允许注入的带数字签名的数据的规则中的至少一种。所述防护数据可为用于防护所述目标进程的数据注入的进程数据,如DLL文件等。所述目标进程可为各种应用的主进程,所述应用可为各种社交应用、各种电子商务平台等。
优选地,所述防护数据的应用程序编程接口与Windows用户界面相关应用程序接口(user32.dll)不相关,可避免注册表注入。
进一步地,所述防护数据的应用程序编程接口可与Windows 9x/Me中非常重要的32位动态链接库文件(Kernel32.dll)、C/C++运行库等相关。
在一个实施例中,将包括预设注入防护规则的防护数据注入目标进程的第一个注入位置的步骤包括以下步骤:
将所述预设注入防护规则转换为所述防护数据。
将所述防护数据作为所述目标进程待加载的第一个加载文件加载到所述目标进程的加载文件导入表的第一个位置。
本实施例,可快速将所述防护数据作为所述目标进程待加载的第一个加载文件加载到所述目标进程的加载文件导入表的第一个位置。
优选地,在将所述防护数据注入所述目标进程的第一个注入位置前,需要启动所述目标进程,可通过进程加载器(Launch_bin.exe)启动所述目标进程。
进一步地,进程加载器可通过Detours库的DetourCreateProcessWithDllEx 启动目标进程,并将防护数据作为第一个注入文件注入到目标进程。
在一个实施例中,所述防护数据可包括DllMain函数Hook LdrLoadDll及CreateProcess函数,通过Hook LdrLoadDll函数后,目标进程的各种待注入数据会转发到Detour_LdrLoadDll函数。待注入数据的数据标识会通过DllPath传递进来,在Detour_LdrLoadDll函数里根据所述预设注入防护规则进行注入防护(若待注入数据为不允许注入的数据,只需要在Detour_LdrLoadDll里不调用注入所述待注入数据的函数,并将DllHandle设为NULL及返回 STATUS_DLL_NOT_FOUND即可)。
对于步骤S202,所述目标进程的注入事件可包括DLL文件注入事件等本领域的各种注入事件。DLL文件注入事件可包括注册表注入事件、钩子注入事件、远程线程注入事件、APC注入事件、远程代码注入事件、LSP注入事件、COM 调用注入事件等。如检测到待注入数据对所述目标进程的注入请求时,判定检测到注入事件。还可通过操作系统的相关API实现检测目标进程的注入事件。
对于步骤S203,对所述目标进程进行注入防护可为拦截不允许注入到所述目标进程的待注入数据。所述待注入数据可为所述注入事件对应的注册表、远程线程、APC、远程代码、LSP、COM调用组件等。
在一个实施例中,根据所述预设注入防护规则,对所述目标进程进行注入防护的步骤包括以下步骤:
根据所述预设注入防护规则判断所述目标进程的注入事件对应的待注入数据是否为允许注入的数据。
若是,则将所述待注入数据注入所述目标进程。
若否,则对所述待注入数据进行注入拦截。
本实施例,可有效拦截不允许注入所述目标进程的数据。
优选地,若所述预设注入防护规则为判断待注入数据为允许注入的数据的会泽,检测到所述目标进程的注入事件时,可判断所述注入事件对应的待注入数据的标识是否包括在所述预设注入防护规则中,若是,则判定所述待注入数据为允许注入的数据,若否,则判定所述待注入数据不是允许注入的数据。
请参阅图3,图3是本发明注入防护方法第二实施方式的流程示意图。
本实施方式所述的注入防护方法与第一实施方式的区别在于:将包括预设注入防护规则的防护数据注入目标进程的第一个注入位置的步骤之后,还包括以下步骤:
步骤S301,将所述防护数据注入所述目标进程的子进程的第一个注入位置。
步骤S302,若检测到所述子进程的注入事件,则运行所述子进程的第一个注入位置的防护数据,获取所述预设注入防护规则。
步骤S303,根据所述预设注入防护规则对所述子进程进行注入防护。
本实施方式,将所述防护数据注入所述目标进程的子进程的第一个注入位置,可进一步对目标进程的子进程进行注入防护,进一步提高注入防护的有效性和安全性。
对于步骤S301,所述子进程的第一个注入位置为所述子进程的第一组注入数据所占据的地址。
在一个实施例中,将所述防护数据注入所述目标进程的子进程的第一个注入位置的步骤包括以下步骤:
检测所述目标进程的进程创建事件。
若检测到,则将所述防护数据注入所述目标进程创建的进程的第一个注入位置。
本实施例,可在目标进程创建进程的同时将所述防护数据注入所述目标进程创建的进程的第一个注入位置,对所述目标进程的子进程进行更及时有效的注入防护。
在另一个实施例中,目标进程的所有创建子进程的调用都会转发到函数 Detour_CreateProcess,在函数Detour_CreateProcess里,通过函数DetourCreateProcessWithDllEx实现创建子进程。若监听到调用DetourCreateProcessWithDllEx,可判断检测到所述不标进程的进程创建事件。还可通过操作系统的相关API(CreateProcess)监听所述目标进程的进程创建事件。
对于步骤S302,所述子进程的注入事件可包括DLL文件注入事件等本领域的各种注入事件。DLL文件注入事件可包括注册表注入事件、钩子注入事件、远程线程注入事件、APC注入事件、远程代码注入事件、LSP注入事件、COM 调用注入事件等。
对于步骤S303,对所述子进程进行注入防护可为拦截不允许注入到所述子进程的待注入数据。
在一个实施例中,根据所述预设注入防护规则对所述子进程进行注入防护的步骤包括以下步骤:
根据所述预设注入防护规则判断所述子进程的注入事件对应的待注入数据是否为允许注入的数据。
若是,则将所述待注入数据注入所述子进程。
若否,则对所述待注入数据进行注入拦截。
本实施例,可有效拦截不允许注入所述子进程的数据。
优选地,若所述预设注入防护规则为判断待注入数据为允许注入的数据的规则,检测到所述子进程的注入事件时,可判断所述注入事件对应的待注入数据的标识是否包括在所述预设注入防护规则中,若是,则判定所述待注入数据为允许注入的数据,若否,则判定所述待注入数据不是允许注入的数据。
在其他实施方式中,注入目标进程的防护数据和注入子进程的防护数据可不同,注入目标进程的防护数据包括与目标进程对应的预设注入防护规则。注入子进程的防护数据包括与子进程对应的预设注入防护规则。
请参阅图4,图4是本发明注入防护方法第三实施方式的流程示意图。
本实施方式所述的注入防护方法与第二实施方式的区别在于:将所述防护数据注入所述目标进程的子进程的第一个注入位置的步骤之后,还包括以下步骤:
步骤S401,检测所述子进程的进程创建事件。
步骤S402,若检测到,则将所述防护数据注入所述子进程创建的进程的第一个注入位置。
步骤S403,若检测到所述子进程创建的进程的注入事件,则运行所述子进程创建的进程的第一个注入位置的防护数据,获取所述预设注入防护规则。
步骤S404,根据所述预设注入防护规则对所述子进程创建的进程进行注入防护。
本实施方式,将所述防护数据注入所述目标进程的子进程的第一个注入位置,可进一步对目标进程的子进程进行注入防护,进一步提高注入防护的有效性和安全性。
对于步骤S401,检测子进程的进程创建事件的方式与检测目标进程的进程创建事件的方式类似。
对于步骤S402,所述子进程创建的进程可简称为孙进程。所述子进程创建的进程的第一个注入位置为所述子进程创建的进程的第一组注入数据所占据的地址。
对于步骤S403,所述子进程创建的进程的注入事件可包括DLL文件注入事件等本领域的各种注入事件。DLL文件注入事件可包括注册表注入事件、钩子注入事件、远程线程注入事件、APC注入事件、远程代码注入事件、LSP注入事件、COM调用注入事件等。
对于步骤S404,对所述子进程创建的进程进行注入防护可为拦截不允许注入到所述子进程的待注入数据。
在一个实施例中,根据所述预设注入防护规则对所述子进程创建的进程进行注入防护的步骤包括以下步骤:
根据所述预设注入防护规则判断所述子进程创建的进程的注入事件对应的待注入数据是否为允许注入的数据。
若是,则将所述待注入数据注入所述子进程创建的进程。
若否,则对所述待注入数据进行注入拦截。
本实施例,可有效拦截不允许注入所述子进程的数据。
优选地,若所述预设注入防护规则为判断待注入数据为允许注入的数据的规则,检测到所述子进程创建的进程的注入事件时,可判断所述注入事件对应的待注入数据的标识是否包括在所述预设注入防护规则中,若是,则判定所述待注入数据为允许注入的数据,若否,则判定所述待注入数据不是允许注入的数据。
在其他实施方式中,注入目标进程的防护数据、注入子进程的防护数据以及注入子进程创建的进程的防护数据可不同,注入目标进程的防护数据包括与目标进程对应的预设注入防护规则。注入子进程的防护数据包括与子进程对应的预设注入防护规则。注入子进程创建的进程的防护数据包括与子进程创建的进程对应的预设注入防护规则。
请参阅图5,图5本发明注入防护系统第一实施方式的结构示意图。
本实施方式所述的注入防护系统,包括防护数据注入模块100、防护数据运行模块200和注入防护模块300,其中:
防护数据注入模块100,用于将包括预设注入防护规则的防护数据注入目标进程的第一个注入位置。
防护数据运行模块200,用于在检测到所述目标进程的注入事件时,运行所述目标进程的第一个注入位置的防护数据,获取所述预设注入防护规则。
注入防护模块300,用于根据所述预设注入防护规则对所述目标进程进行注入防护。
本实施方式,将包括预设注入防护规则的防护数据注入目标进程的第一个注入位置,若检测到所述目标进程的注入事件,则运行所述目标进程的第一个注入位置的防护数据,获取所述预设注入防护规则,根据所述预设注入防护规则对所述目标进程进行注入防护,无需修改应用的原程序源代码逻辑,即可根据所述预设注入防护规则对所述目标进程进行注入防护,如拦截不允许注入的数据,可使注入防护的通用性更好、适用性更高,适用到更大范围的应用防护中。
其中,对于防护数据注入模块100,所述目标进程的第一个注入位置为所述目标进程的第一组注入数据所占据的地址。所述预设注入防护规则包括判断待注入数据为允许注入的数据的规则、判断待注入数据为禁止注入的数据的规则和判断待注入数据为允许注入的带数字签名的数据的规则中的至少一种。所述防护数据可为用于防护所述目标进程的数据注入的进程数据,如DLL文件等。所述目标进程可为各种应用的主进程,所述应用可为各种社交应用、各种电子商务平台等。
优选地,所述防护数据的应用程序编程接口与Windows用户界面相关应用程序接口(user32.dll)不相关,可避免注册表注入。
进一步地,所述防护数据的应用程序编程接口可与Windows 9x/Me中非常重要的32位动态链接库文件(Kernel32.dll)、C/C++运行库等相关。
在一个实施例中,防护数据注入模块100可包括进程转换模块和文件注入模块,其中:
所述进程转换模块用于将所述预设注入防护规则转换为所述防护数据。
所述文件注入模块用于将所述防护数据作为所述目标进程待加载的第一个加载文件加载到所述目标进程的加载文件导入表的第一个位置。
本实施例,可快速将所述防护数据作为所述目标进程待加载的第一个加载文件加载到所述目标进程的加载文件导入表的第一个位置。
优选地,在将所述防护数据注入所述目标进程的第一个注入位置前,需要启动所述目标进程,可通过进程加载器(Launch_bin.exe)启动所述目标进程。
进一步地,进程加载器可通过Detours库的DetourCreateProcessWithDllEx 启动目标进程,并将防护数据作为第一个注入文件注入到目标进程。
在一个实施例中,所述防护数据可包括DllMain函数Hook LdrLoadDll及CreateProcess函数,通过Hook LdrLoadDll函数后,目标进程的各种待注入数据会转发到Detour_LdrLoadDll函数。待注入数据的数据标识会通过DllPath传递进来,在Detour_LdrLoadDll函数里根据所述预设注入防护规则进行注入防护(若待注入数据为不允许注入的数据,只需要在Detour_LdrLoadDll里不调用注入所述待注入数据的函数,并将DllHandle设为NULL及返回 STATUS_DLL_NOT_FOUND即可)。
对于防护数据运行模块200,所述目标进程的注入事件可包括DLL文件注入事件等本领域的各种注入事件。DLL文件注入事件可包括注册表注入事件、钩子注入事件、远程线程注入事件、APC注入事件、远程代码注入事件、LSP 注入事件、COM调用注入事件等。
对于注入防护模块300,对所述目标进程进行注入防护可为拦截不允许注入到所述目标进程的待注入数据。所述待注入数据可为所述注入事件对应的注册表、远程线程、APC、远程代码、LSP、COM调用组件等。
在一个实施例中,注入防护模块300可包括判断模块、第五防护模块和第六防护模块,其中:
所述判断模块用于根据所述预设注入防护规则判断所述目标进程的注入事件对应的待注入数据是否为允许注入的数据;
所述第五防护模块用于在所述待注入数据是允许注入的数据时,将所述待注入数据注入所述目标进程;
所述第六防护模块用于在所述待注入数据不是允许注入的数据时,对所述待注入数据进行注入拦截。
本实施例,可有效拦截不允许注入所述目标进程的数据。
优选地,若所述预设注入防护规则为判断待注入数据为允许注入的数据的规则,检测到所述目标进程的注入事件时,可判断所述注入事件对应的待注入数据的标识是否包括在所述预设注入防护规则中,若是,则判定所述待注入数据为允许注入的数据,若否,则判定所述待注入数据不是允许注入的数据。
请参阅图6,图6是本发明注入防护系统第二实施方式的结构示意图。
本实施方式所述的注入防护系统与第一实施方式的区别在于:还包括第二注入模块610、第二运行模块620和第二防护模块630,其中:
第二注入模块610用于将所述防护数据注入所述目标进程的子进程的第一个注入位置。
第二运行模块620用于在检测到所述子进程的注入事件时,运行所述子进程的第一个注入位置的防护数据,获取所述预设注入防护规则。
第二防护模块630用于根据所述预设注入防护规则对所述子进程进行注入防护。
本实施方式,将所述防护数据注入所述目标进程的子进程的第一个注入位置,可进一步对目标进程的子进程进行注入防护,进一步提高注入防护的有效性和安全性。
对于第二注入模块610,所述子进程的第一个注入位置为所述子进程的第一组注入数据所占据的地址。
在一个实施例中,第二注入模块610还包括第三检测模块和第三注入模块,其中:
所述第三检测模块用于检测所述目标进程的进程创建事件。
所述第三注入模块用于在检测到所述目标进程的进程创建事件时,将所述防护数据注入所述目标进程创建的进程的第一个注入位置。
本实施例,可在目标进程创建进程的同时将所述防护数据注入所述目标进程创建的进程的第一个注入位置,对所述目标进程的子进程进行更及时有效的注入防护。
对于第二运行模块620,所述子进程的注入事件可包括DLL文件注入事件等本领域的各种注入事件。DLL文件注入事件可包括注册表注入事件、钩子注入事件、远程线程注入事件、APC注入事件、远程代码注入事件、LSP注入事件、COM调用注入事件等。
对于第二防护模块630,对所述子进程进行注入防护可为拦截不允许注入到所述子进程的待注入数据。
在其他实施方式中,注入目标进程的防护数据和注入子进程的防护数据可不同,注入目标进程的防护数据包括与目标进程对应的预设注入防护规则。注入子进程的防护数据包括与子进程对应的预设注入防护规则。
请参阅图7,图7是本发明注入防护系统第三实施方式的结构示意图。
本实施方式所述的注入防护系统与第二实施方式的区别在于:还包括第四检测模块710、第四注入模块720、第四运行模块730和第四防护模块740,其中:
第四检测模块710用于检测所述子进程的进程创建事件。
第四注入模块720用于在检测到所述子进程的进程创建事件,则将所述防护数据注入所述子进程创建的进程的第一个注入位置。
第四运行模块730用于在检测到所述子进程创建的进程的注入事件时,运行所述子进程创建的进程的第一个注入位置的防护数据,获取所述预设注入防护规则。
第四防护模块740用于根据所述预设注入防护规则对所述子进程创建的进程进行注入防护。
本实施方式,将所述防护数据注入所述目标进程的子进程的第一个注入位置,可进一步对目标进程的子进程进行注入防护,进一步提高注入防护的有效性和安全性。
对于第四检测模块710,检测子进程的进程创建事件的方式与检测目标进程的进程创建事件的方式类似。
对于第四注入模块720,所述子进程创建的进程可简称为孙进程。所述子进程创建的进程的第一个注入位置为所述子进程创建的进程的第一组注入数据所占据的地址。
对于第四运行模块730,所述子进程创建的进程的注入事件可包括DLL文件注入事件等本领域的各种注入事件。DLL文件注入事件可包括注册表注入事件、钩子注入事件、远程线程注入事件、APC注入事件、远程代码注入事件、 LSP注入事件、COM调用注入事件等。
对于第四防护模块740,对所述子进程创建的进程进行注入防护可为拦截不允许注入到所述子进程的待注入数据。
在其他实施方式中,注入目标进程的防护数据、注入子进程的防护数据以及注入子进程创建的进程的防护数据可不同,注入目标进程的防护数据包括与目标进程对应的预设注入防护规则。注入子进程的防护数据包括与子进程对应的预设注入防护规则。注入子进程创建的进程的防护数据包括与子进程创建的进程对应的预设注入防护规则。
图8为能实现本发明实施例的一个计算机系统1000的模块图。该计算机系统1000只是一个适用于本发明的计算机环境的示例,不能认为是提出了对本发明的使用范围的任何限制。计算机系统1000也不能解释为需要依赖于或具有图示的示例性的计算机系统1000中的一个或多个部件的组合。
图8中示出的计算机系统1000是一个适合用于本发明的计算机系统的例子。具有不同子系统配置的其它架构也可以使用。例如有大众所熟知的台式机、笔记本、个人数字助理、智能电话、平板电脑、便携式媒体播放器等类似设备可以适用于本发明的一些实施例。但不限于以上所列举的设备。
如图8所示,计算机系统1000包括处理器1010、存储器1020和系统总线 1022。包括存储器1020和处理器1010在内的各种系统组件连接到系统总线1022 上。处理器1010是一个用来通过计算机系统中基本的算术和逻辑运算来执行计算机程序指令的硬件。存储器1020是一个用于临时或永久性存储计算程序或数据(例如,程序状态信息)的物理设备。系统总线1020可以为以下几种类型的总线结构中的任意一种,包括存储器总线或存储控制器、外设总线和局部总线。处理器1010和存储器1020可以通过系统总线1022进行数据通信。其中存储器 1020包括只读存储器(ROM)或闪存(图中都未示出),以及随机存取存储器(RAM),RAM通常是指加载了操作系统和应用程序的主存储器。
计算机系统1000还包括显示接口1030(例如,图形处理单元)、显示设备 1040(例如,液晶显示器)、音频接口1050(例如,声卡)以及音频设备1060 (例如,扬声器)。显示设备1040和音频设备1060是用于体验多媒体内容的媒体设备。
计算机系统1000一般包括一个存储设备1070。存储设备1070可以从多种计算机可读介质中选择,计算机可读介质是指可以通过计算机系统1000访问的任何可利用的介质,包括移动的和固定的两种介质。例如,计算机可读介质包括但不限于,闪速存储器(微型SD卡),CD-ROM,数字通用光盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁存储设备,或者可用于存储所需信息并可由计算机系统1000访问的任何其它介质。
计算机系统1000还包括输入装置1080和输入接口1090(例如,IO控制器)。用户可以通过输入装置1080,如键盘、鼠标、显示装置1040上的触摸面板设备,输入指令和信息到计算机系统1000中。输入装置1080通常是通过输入接口1090 连接到系统总线1022上的,但也可以通过其它接口或总线结构相连接,如通用串行总线(USB)。
计算机系统1000可在网络环境中与一个或者多个网络设备进行逻辑连接。网络设备可以是个人电脑、服务器、路由器、智能电话、平板电脑或者其它公共网络节点。计算机系统1000通过局域网(LAN)接口1100或者移动通信单元1110与网络设备相连接。局域网(LAN)是指在有限区域内,例如家庭、学校、计算机实验室、或者使用网络媒体的办公楼,互联组成的计算机网络。WiFi 和双绞线布线以太网是最常用的构建局域网的两种技术。WiFi是一种能使计算机系统1000间交换数据或通过无线电波连接到无线网络的技术。移动通信单元1110能在一个广阔的地理区域内移动的同时通过无线电通信线路接听和拨打电话。除了通话以外,移动通信单元1110也支持在提供移动数据服务的2G,3G 或4G蜂窝通信系统中进行互联网访问。
应当指出的是,其它包括比计算机系统1000更多或更少的子系统的计算机系统也能适用于发明。
如上面详细描述的,适用于本发明的计算机系统1000能执行注入防护方法的指定操作。计算机系统1000通过处理器1010运行在计算机可读介质中的软件指令的形式来执行这些操作。这些软件指令可以从存储设备1070或者通过局域网接口1100从另一设备读入到存储器1020中。存储在存储器1020中的软件指令使得处理器1010执行上述的注入防护方法。此外,通过硬件电路或者硬件电路结合软件指令也能同样实现本发明。因此,实现本发明并不限于任何特定硬件电路和软件的组合。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (14)
1.一种注入防护方法,其特征在于,包括以下步骤:
将包括预设注入防护规则的防护数据注入目标进程的第一个注入位置;
若检测到所述目标进程的注入事件,则运行所述目标进程的第一个注入位置的防护数据,获取所述预设注入防护规则;
根据所述预设注入防护规则对所述目标进程进行注入防护;
将包括预设注入防护规则的防护数据注入目标进程的第一个注入位置的步骤包括以下步骤:
将所述预设注入防护规则转换为所述防护数据;
将所述防护数据作为所述目标进程待加载的第一个加载文件加载到所述目标进程的加载文件导入表的第一个位置;
将包括预设注入防护规则的防护数据注入目标进程的第一个注入位置的步骤之后,还包括以下步骤:
将所述防护数据注入所述目标进程的子进程的第一个注入位置;
若检测到所述子进程的注入事件,则运行所述子进程的第一个注入位置的防护数据,获取所述预设注入防护规则;
根据所述预设注入防护规则对所述子进程进行注入防护。
2.根据权利要求1所述的注入防护方法,其特征在于,将所述防护数据注入所述目标进程的子进程的第一个注入位置的步骤包括以下步骤:
检测所述目标进程的进程创建事件;
若检测到,则将所述防护数据注入所述目标进程创建的进程的第一个注入位置。
3.根据权利要求1所述的注入防护方法,其特征在于,将所述防护数据注入所述目标进程的子进程的第一个注入位置的步骤之后,还包括以下步骤:
检测所述子进程的进程创建事件;
若检测到,则将所述防护数据注入所述子进程创建的进程的第一个注入位置;
若检测到所述子进程创建的进程的注入事件,则运行所述子进程创建的进程的第一个注入位置的防护数据,获取所述预设注入防护规则;
根据所述预设注入防护规则对所述子进程创建的进程进行注入防护。
4.根据权利要求1所述的注入防护方法,其特征在于,所述防护数据的应用程序编程接口与Windows用户界面相关应用程序接口不相关。
5.根据权利要求1所述的注入防护方法,其特征在于,所述预设注入防护规则包括判断待注入数据为允许注入的数据的规则、判断待注入数据为禁止注入的数据的规则和判断待注入数据为允许注入的带数字签名的数据的规则中的至少一种。
6.根据权利要求1至5中任意一项所述的注入防护方法,其特征在于,根据所述预设注入防护规则,对所述目标进程进行注入防护的步骤包括以下步骤:
根据所述预设注入防护规则判断所述目标进程的注入事件对应的待注入数据是否为允许注入的数据;
若是,则将所述待注入数据注入所述目标进程;
若否,则对所述待注入数据进行注入拦截。
7.一种注入防护系统,其特征在于,包括:
防护数据注入模块,用于将包括预设注入防护规则的防护数据注入目标进程的第一个注入位置;
防护数据运行模块,用于在检测到所述目标进程的注入事件时,运行所述目标进程的第一个注入位置的防护数据,获取所述预设注入防护规则;
注入防护模块,用于根据所述预设注入防护规则对所述目标进程进行注入防护;
所述防护数据注入模块包括进程转换模块和文件注入模块,其中:
所述进程转换模块用于将所述预设注入防护规则转换为所述防护数据;
所述文件注入模块用于将所述防护数据作为所述目标进程待加载的第一个加载文件加载到所述目标进程的加载文件导入表的第一个位置;
还包括第二注入模块、第二运行模块和第二防护模块,其中:
所述第二注入模块用于将所述防护数据注入所述目标进程的子进程的第一个注入位置;
所述第二运行模块用于在检测到所述子进程的注入事件时,运行所述子进程的第一个注入位置的防护数据,获取所述预设注入防护规则;
所述第二防护模块用于根据所述预设注入防护规则对所述子进程进行注入防护。
8.根据权利要求7所述的注入防护系统,其特征在于,所述第二注入模块还包括第三检测模块和第三注入模块,其中:
所述第三检测模块用于检测所述目标进程的进程创建事件;
所述第三注入模块用于在检测到所述目标进程的进程创建事件时,将所述防护数据注入所述目标进程创建的进程的第一个注入位置。
9.根据权利要求7所述的注入防护系统,其特征在于,还包括第四检测模块、第四注入模块、第四运行模块和第四防护模块,其中:
所述第四检测模块用于检测所述子进程的进程创建事件;
所述第四注入模块用于在检测到所述子进程的进程创建事件,则将所述防护数据注入所述子进程创建的进程的第一个注入位置;
所述第四运行模块用于在检测到所述子进程创建的进程的注入事件时,运行所述子进程创建的进程的第一个注入位置的防护数据,获取所述预设注入防护规则;
所述第四防护模块用于根据所述预设注入防护规则对所述子进程创建的进程进行注入防护。
10.根据权利要求7所述的注入防护系统,其特征在于,所述防护数据的应用程序编程接口与Windows用户界面相关应用程序接口不相关。
11.根据权利要求7所述的注入防护系统,其特征在于,所述预设注入防护规则包括判断待注入数据为允许注入的数据的规则、判断待注入数据为禁止注入的数据的规则和判断待注入数据为允许注入的带数字签名的数据的规则中的至少一种。
12.根据权利要求7至11中任意一项所述的注入防护系统,其特征在于,所述注入防护模块包括判断模块、第五防护模块和第六防护模块,其中:
所述判断模块用于根据所述预设注入防护规则判断所述目标进程的注入事件对应的待注入数据是否为允许注入的数据;
所述第五防护模块用于在所述待注入数据是允许注入的数据时,将所述待注入数据注入所述目标进程;
所述第六防护模块用于在所述待注入数据不是允许注入的数据时,对所述待注入数据进行注入拦截。
13.一种终端,包含存储介质,处理器及存储在存储介质上并可以在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1-6中任一项所述的注入防护方法。
14.一种存储介质,其上存储有计算机程序,所述程序被处理器执行可实现如权利要求1-6任一项所述的注入防护方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510212143.3A CN106203087B (zh) | 2015-04-29 | 2015-04-29 | 注入防护方法、系统、终端以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510212143.3A CN106203087B (zh) | 2015-04-29 | 2015-04-29 | 注入防护方法、系统、终端以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106203087A CN106203087A (zh) | 2016-12-07 |
CN106203087B true CN106203087B (zh) | 2020-04-28 |
Family
ID=57457567
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510212143.3A Active CN106203087B (zh) | 2015-04-29 | 2015-04-29 | 注入防护方法、系统、终端以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106203087B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111198723B (zh) * | 2018-11-19 | 2023-03-07 | 深圳市优必选科技有限公司 | 一种进程注入方法、终端设备及计算机可读存储介质 |
CN110399184B (zh) * | 2019-07-31 | 2023-04-25 | 中国工商银行股份有限公司 | 区块链中智能合约的执行方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101872391A (zh) * | 2009-04-23 | 2010-10-27 | 盛大计算机(上海)有限公司 | 基于三环体系的安全防护系统 |
CN103152739A (zh) * | 2013-02-06 | 2013-06-12 | 北京奇虎科技有限公司 | 一种移动终端通话请求信息处理的方法、装置及系统 |
CN103379481A (zh) * | 2012-04-26 | 2013-10-30 | 腾讯科技(深圳)有限公司 | 一种实现安全防护的方法及一种防火墙 |
CN104079528A (zh) * | 2013-03-26 | 2014-10-01 | 北大方正集团有限公司 | 一种Web应用的安全防护方法及系统 |
CN104156662A (zh) * | 2014-08-28 | 2014-11-19 | 北京奇虎科技有限公司 | 进程监控的方法、装置和智能终端 |
CN104217157A (zh) * | 2014-07-31 | 2014-12-17 | 珠海市君天电子科技有限公司 | 一种漏洞防利用方法及系统 |
CN104539584A (zh) * | 2014-12-05 | 2015-04-22 | 北京奇虎科技有限公司 | 浏览器防注入方法、浏览器客户端和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101671795B1 (ko) * | 2010-01-18 | 2016-11-03 | 삼성전자주식회사 | 동적 링크 라이브러리 삽입 공격을 방지하는 컴퓨터 시스템 및 방법 |
-
2015
- 2015-04-29 CN CN201510212143.3A patent/CN106203087B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101872391A (zh) * | 2009-04-23 | 2010-10-27 | 盛大计算机(上海)有限公司 | 基于三环体系的安全防护系统 |
CN103379481A (zh) * | 2012-04-26 | 2013-10-30 | 腾讯科技(深圳)有限公司 | 一种实现安全防护的方法及一种防火墙 |
CN103152739A (zh) * | 2013-02-06 | 2013-06-12 | 北京奇虎科技有限公司 | 一种移动终端通话请求信息处理的方法、装置及系统 |
CN104079528A (zh) * | 2013-03-26 | 2014-10-01 | 北大方正集团有限公司 | 一种Web应用的安全防护方法及系统 |
CN104217157A (zh) * | 2014-07-31 | 2014-12-17 | 珠海市君天电子科技有限公司 | 一种漏洞防利用方法及系统 |
CN104156662A (zh) * | 2014-08-28 | 2014-11-19 | 北京奇虎科技有限公司 | 进程监控的方法、装置和智能终端 |
CN104539584A (zh) * | 2014-12-05 | 2015-04-22 | 北京奇虎科技有限公司 | 浏览器防注入方法、浏览器客户端和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106203087A (zh) | 2016-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5985631B2 (ja) | 信頼レベルのアクティブ化 | |
US8225061B2 (en) | Method and apparatus for protected content data processing | |
EP3123311B1 (en) | Malicious code protection for computer systems based on process modification | |
US20160232374A1 (en) | Permission control method and apparatus | |
US8438640B1 (en) | Method and apparatus for reverse patching of application programming interface calls in a sandbox environment | |
US9516056B2 (en) | Detecting a malware process | |
US20200264863A1 (en) | Hot update method, operating system, terminal device, and storage medium | |
WO2015169216A1 (en) | Method and apparatus of preloading browser game on client | |
US9852052B2 (en) | Trusted execution of called function | |
CN108763951B (zh) | 一种数据的保护方法及装置 | |
US9189300B2 (en) | Dynamic service discovery | |
US20140006598A1 (en) | Methods, apparatuses and computer program products for facilitating dynamic origin-based domain allocation | |
CN104268472A (zh) | 还原被第三方动态库修改函数地址的方法和装置 | |
CN111753270A (zh) | 应用程序登录验证方法、装置、设备和存储介质 | |
CN106203087B (zh) | 注入防护方法、系统、终端以及存储介质 | |
US10719456B2 (en) | Method and apparatus for accessing private data in physical memory of electronic device | |
CN110674050B (zh) | 内存越界检测方法、装置、电子设备及计算机存储介质 | |
US10754931B2 (en) | Methods for configuring security restrictions of a data processing system | |
JP6018344B2 (ja) | 動的読み込みコード解析装置、動的読み込みコード解析方法及び動的読み込みコード解析プログラム | |
US20160352748A1 (en) | Method for blocking unauthorized data access and computing device with feature of blocking unauthorized data access | |
US11277436B1 (en) | Identifying and mitigating harm from malicious network connections by a container | |
US20190034622A1 (en) | Providing joint access to an isolated computer object by both an isolated computer application and a non-isolated computer application | |
CN113836529A (zh) | 进程检测方法、装置、存储介质以及计算机设备 | |
CN108875372B (zh) | 一种代码检测方法、装置、电子设备及存储介质 | |
US10614211B2 (en) | Bringing a non-isolated application into an isolation layer with an isolated application |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |