CN106326735A - 防注入的方法和装置 - Google Patents

防注入的方法和装置 Download PDF

Info

Publication number
CN106326735A
CN106326735A CN201510382748.7A CN201510382748A CN106326735A CN 106326735 A CN106326735 A CN 106326735A CN 201510382748 A CN201510382748 A CN 201510382748A CN 106326735 A CN106326735 A CN 106326735A
Authority
CN
China
Prior art keywords
information
dynamic link
link library
registry
read
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.)
Granted
Application number
CN201510382748.7A
Other languages
English (en)
Other versions
CN106326735B (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201510382748.7A priority Critical patent/CN106326735B/zh
Publication of CN106326735A publication Critical patent/CN106326735A/zh
Application granted granted Critical
Publication of CN106326735B publication Critical patent/CN106326735B/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/55Detecting local intrusion or implementing counter-measures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及一种防注入的方法和装置。所述方法包括以下步骤:获取应用程序编程接口的调用指令;根据所述调用指令在应用程序编程接口内部读取注册表信息时,进入Hook函数;通过所述Hook函数读取注册表信息,并根据预设策略获取动态链接库信息;加载获取的动态链接库信息到当前进程。上述防注入的方法和装置,调用应用程序编程接口时,通过Hook函数读取注册表信息,并按照预设策略获取动态链接库信息,加载动态链接库信息到当前进程中,通过预设策略筛选了动态链接库,而不是直接由应用程序编程接口读取注册表信息获取动态链接库进行加载,不需人工识别,能防止出错,且能加载应用程序编程接口,因筛选过动态链接库,调用应用程序编程接口安全性高。

Description

防注入的方法和装置
技术领域
本发明涉及信息安全领域,特别是涉及一种防注入的方法和装置。
背景技术
注入是指以某种方式或通过系统机制把可执行模块强行加载到进程中。常见的注入发生在API(Applicant Programming Interface,应用程序编程接口)的内部,当代码中调用某个系统API时(如SHELL32.dll的特定API),API内部会主动读取注册表特定的位置,检查是否有第三方的DLL(Dynamic LinkLibrary,动态链接库)注册信息,如果存在第三方的DLL信息,API会把这些第三方DLL加载到当前进程中,这个就是一次注入过程。
为了防止注入,传统的方式是避免调用有注入行为的API。然而,采用避免调用的方式,需要清晰知道哪类API内部具有注入行为,对软件开发者要求过高,且出错机会较大;一些核心功能的API,实现功能比较复杂,并且没有替代的API,如果调用这些API则会被注入,容易被攻击者通过注入的DLL进行攻击,安全性低,若不调用这些API,则需要自己实现其相应的功能,代价非常大。
发明内容
基于此,有必要针对传统的避免调用方式防止注入,出错几率大且安全性低的问题,提供一种防注入的方法,能防止出错且安全性高。
此外,还有必要提供一种防注入的装置,能防止出错且安全性高。
一种防注入的方法,包括以下步骤:
获取应用程序编程接口的调用指令;
根据所述调用指令在应用程序编程接口内部读取注册表信息时,进入Hook函数;
通过所述Hook函数读取注册表信息,并根据预设策略获取动态链接库信息;
加载获取的动态链接库信息到当前进程。
一种防注入的装置,包括:
调用模块,用于获取应用程序编程接口的调用指令;
进入模块,用于根据所述调用指令在应用程序编程接口内部读取注册表信息时,进入Hook函数;
获取模块,用于通过所述Hook函数读取注册表信息,并根据预设策略获取动态链接库信息;
加载模块,用于加载获取的动态链接库信息到当前进程。
上述防注入的方法和装置,调用应用程序编程接口时,通过Hook函数读取注册表信息,并按照预设策略获取动态链接库信息,加载动态链接库信息到当前进程中,通过预设策略筛选了动态链接库,而不是直接由应用程序编程接口读取注册表信息获取动态链接库进行加载,不需人工识别,能防止出错,且能加载应用程序编程接口,因筛选过动态链接库,调用应用程序编程接口安全性高。
附图说明
图1A为一个实施例中终端的内部结构示意图;
图1B为一个实施例中服务器的内部结构示意图;
图2为一个实施例中防注入的方法的流程图;
图3为一个实施例中使用上述防注入的方法注入动态链接库的框架示意图;
图4为一个实施例中通过该Hook函数读取注册表信息,并根据预设策略获取动态链接库信息的具体流程图;
图5为一个实施例中防注入的装置的结构框图;
图6为另一个实施例中防注入的装置的结构框图;
图7为注入第三方的DLL的结果示意图;
图8为防止注入第三方的DLL的结果示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1A为一个实施例中终端的内部结构示意图。如图1A所示,该终端包括通过系统总线连接的处理器、存储介质、内存和网络接口、声音采集装置、显示屏、扬声器和输入装置。其中,终端的存储介质存储有操作系统,还包括一种防注入的装置,该防注入的装置用于实现一种防注入的方法。存储介质中还存储有白名单和/或黑名单、动态链接库注入信息的注册表位置等,白名单用于记录允许注入的动态链接库的属性信息,黑名单用于记录不允许注入的动态链接库的属性信息。属性信息可包括DLL(Dynamic Link Library,动态链接库)的路径、DLL的CLSID信息(Class Identity,全局唯一标识符)、DLL的哈希信息等。该处理器用于提供计算和控制能力,支撑整个终端的运行。终端中的内存为存储介质中的防注入的装置的运行提供环境,网络接口用于与服务器进行网络通信,如发送数据请求至服务器,接收服务器返回的数据等。终端的显示屏可以是液晶显示屏或者电子墨水显示屏等,输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是外接的键盘、触控板或鼠标等。该终端可以是手机、平板电脑或者个人数字助理。本领域技术人员可以理解,图1A中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的终端的限定,具体的终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
图1B为一个实施例中服务器的内部结构示意图。如图1B所示,该服务器包括通过系统总线连接的处理器、存储介质、内存和网络接口。其中,该服务器的存储介质存储有操作系统、数据库和防注入的装置,数据库中存储有白名单和/或黑名单、动态链接库注入信息的注册表位置等,白名单用于记录允许注入的动态链接库的属性信息,黑名单用于记录不允许注入的动态链接库的属性信息。属性信息可包括DLL(Dynamic Link Library,动态链接库)的路径、DLL的CLSID信息(Class Identity,全局唯一标识符)、DLL的哈希信息等。该防注入的装置用于实现适用于服务器的一种防注入的方法。该服务器的处理器用于提供计算和控制能力,支撑整个服务器的运行。该服务器的内存为存储介质中的防注入的装置的运行提供环境。该服务器的网络接口用于据以与外部的终端通过网络连接通信,比如接收终端发送的数据请求以及向终端返回压缩后的数据等。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。本领域技术人员可以理解,图1B中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的服务器的限定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
图2为一个实施例中防注入的方法的流程图。图2中的防注入的方法可应用于终端或服务器上。如图2所示,一种防注入的方法,包括以下步骤:
步骤202,获取应用程序编程接口的调用指令。
具体地,程序调用应用程序编程接口时,产生调用指令。
步骤204,根据该调用指令在应用程序编程接口内部读取注册表信息时,进入Hook函数。
具体地,程序调用API时,API内部会读取注册表信息。读取注册表信息是读取各个注册表位置上的信息。
步骤206,通过该Hook函数读取注册表信息,并根据预设策略获取动态链接库信息。
具体地,Hook函数读取注册表信息后,根据预设策略从注册表信息中获取动态链接库信息。
预设策略可根据需要设定。
在一个实施例中,预设策略可包括白名单和/或黑名单。其中,白名单用于记录允许注入的动态链接库的属性信息,该黑名单用于记录不允许注入的动态链接库的属性信息。属性信息可包括DLL的路径、DLL的CLSID(全局唯一标识符)信息、DLL的哈希信息等中的一种或多种。DLL的路径是指动态链接库所处的位置,例如D:\program files/abc。DLL的CLSID是指windows系统对于不同的应用程序、文件类型、对象等以及各种系统组件分配的一个唯一表示它的ID代码,用于对其身份的标示和其他对象进行区分。
步骤206包括:通过该Hook函数读取注册表信息,并根据白名单和/或黑名单筛选得到允许注入的动态链接库。
具体地,根据白名单筛选出允许加载的动态链接库,根据黑名单删除不允许加载的动态链接库。
在另一个实施例中,预设策略为不允许任何动态链接库注入。步骤206包括:通过该Hook函数读取注册表信息,并根据预设策略获取空信息给应用程序编程接口。
具体地,当预设策略为不允许任何动态链接库注入时,Hook函数返回空信息给API,这样就不会有任何动态链接库被加载。
在另一个实施例中,预设策略可包括动态链接库的数字签名信息。步骤206包括:通过Hook函数读取注册表信息,获取动态链接库信息,从动态链接库信息中筛选出具有数字签名的动态链接库作为允许注入的动态链接库。
具体地,动态链接库信息可包括DLL的路径、DLL的CLSID(全局唯一标识符)信息、DLL的哈希信息等中的一种或多种。
在另一个实施例中,预设策略可包括动态链接库的数字签名信息、白名单和/或黑名单。步骤206包括:通过Hook函数读取注册表信息,获取动态链接库信息,从动态链接库信息中筛选出具有数字签名的动态链接库,再从具有数字签名的动态链接库中按照白名单和/或黑名单筛选得到允许注入的动态链接库。
步骤208,加载获取的动态链接库信息到当前进程。
具体地,获取的动态链接库信息可包括允许注入的动态链接库,或者为空信息。若动态链接库信息为允许注入的动态链接库,则加载获取的动态链接库到当前进程中。若动态链接库信息为空信息,则不加载任何动态链接库。
当前进程是指调用应用程序编程接口的程序运行时所启动的进程。
上述防注入的方法,调用应用程序编程接口时,通过Hook函数读取注册表信息,并按照预设策略获取动态链接库信息,加载动态链接库信息到当前进程中,通过预设策略筛选了动态链接库,而不是直接由应用程序编程接口读取注册表信息获取动态链接库进行加载,不需人工识别,能防止出错,且能加载应用程序编程接口,因筛选过动态链接库,调用应用程序编程接口安全性高。
图3为一个实施例中使用上述防注入的方法注入动态链接库的框架示意图。如图3所示,注入动态链接库的过程包括:API调用后,(1)API内部读取注册表信息;(2)从Hook函数读取DLL信息;(3)Hook函数读取注册表;(4)获取注册表返回的注册表信息;(5)Hook函数根据返回的注册表信息及预设策略返回DLL信息给API;(6)API加载获取到的DLL到当前进程。
图4为一个实施例中通过该Hook函数读取注册表信息,并根据预设策略获取动态链接库信息的具体流程图。如图4所示,通过该Hook函数读取注册表信息,并根据预设策略获取动态链接库信息步骤包括:
步骤402,通过该Hook函数读取注册表信息,判断读取的注册表位置是否为预先记录的与注入相关的注册表位置,若是,则执行步骤404,若否,执行步骤410。
本实施例中,预先记录动态链接库注入信息的注册表位置。具体地,软件开发者统计出系统中所有保存DLL注入信息的注册表位置,并记录。预先记录的与注入相关的注册表位置即为预先记录的动态链接库注入信息的注册表位置。
步骤404,根据该调用指令分析读取到的动态链接库信息,然后执行步骤406。
步骤406,根据预设策略从读取到的动态链接库信息中剔除不需要注入的动态链接库,然后执行步骤408。
步骤408,获取剩余的动态链接库。
具体地,预设策略可包括数字签名、黑名单、白名单其中一种或两种以上组合。
本实施例中,加载获取的动态链接库信息到当前进程的步骤包括:加载该剩余的动态链接库到当前进程。
步骤410,根据调用指令直接获取动态链接库信息。
具体地,判断出读取的注册表位置不为预先记录的与注入相关的注册表位置,则根据调用指令直接获取动态链接库信息,后续根据获取的动态链接库信息直接进行加载。
上述通过Hook函数判断读取的注册表位置是否为与注入相关的位置,若是,则分析读取到的DLL信息,根据预设策略筛选能加载的DLL,如此加载的DLL均为信任的DLL,其安全性高,通过Hook函数进行检测判断,方便且准确性高,能防止出错。
图5为一个实施例中防注入的装置的结构框图。图5的防注入的装置的内部模块为对应于图2中防注入的方法所建立的虚拟功能模块,但不限于此功能模块划分。如图5所示,一种防注入的装置,包括调用模块510、进入模块520、获取模块530和加载模块540。其中:
调用模块510用于获取应用程序编程接口的调用指令。
具体地,程序调用应用程序编程接口时,产生调用指令。
进入模块520用于根据该调用指令在应用程序编程接口内部读取注册表信息时,进入Hook函数。
具体地,程序调用API时,API内部会读取注册表信息。读取注册表信息是读取各个注册表位置上的信息。
获取模块530用于通过该Hook函数读取注册表信息,并根据预设策略获取动态链接库信息。
具体地,Hook函数读取注册表信息后,根据预设策略从注册表信息中获取动态链接库信息。预设策略可根据需要设定。
在一个实施例中,预设策略可包括白名单和/或黑名单。其中,白名单用于记录允许注入的动态链接库的属性信息,该黑名单用于记录不允许注入的动态链接库的属性信息。属性信息可包括DLL的路径、DLL的CLSID(全局唯一标识符)信息、DLL的哈希信息等中的一种或多种。DLL的路径是指动态链接库所处的位置,例如D:\program files/abc。DLL的CLSID是指windows系统对于不同的应用程序、文件类型、对象等以及各种系统组件分配的一个唯一表示它的ID代码,用于对其身份的标示和其他对象进行区分。
获取模块530还用于通过该Hook函数读取注册表信息,并根据白名单和/或黑名单筛选得到动态链接库。具体地,根据白名单筛选出允许加载的动态链接库,根据黑名单删除不允许加载的动态链接库。
在另一个实施例中,预设策略为不允许任何动态链接库注入。获取模块530还用于通过该Hook函数读取注册表信息,并根据预设策略获取空信息给应用程序编程接口。
具体地,当预设策略为不允许任何动态链接库注入时,Hook函数返回空信息给API,这样就不会有任何动态链接库被加载。
在另一个实施例中,预设策略可包括动态链接库的数字签名信息。获取模块530还用于通过Hook函数读取注册表信息,获取动态链接库信息,从动态链接库信息中筛选出具有数字签名的动态链接库作为允许注入的动态链接库。
具体地,动态链接库信息可包括DLL的路径、DLL的CLSID(全局唯一标识符)信息、DLL的哈希信息等中的一种或多种。
在另一个实施例中,预设策略可包括动态链接库的数字签名信息、白名单和/或黑名单。获取模块530还用于通过Hook函数读取注册表信息,获取动态链接库信息,从动态链接库信息中筛选出具有数字签名的动态链接库,再从具有数字签名的动态链接库中按照白名单和/或黑名单筛选得到允许注入的动态链接库。
加载模块540用于加载获取的动态链接库信息到当前进程。
具体地,获取的动态链接库信息可包括允许注入的动态链接库,或者为空信息。若动态链接库信息为允许注入的动态链接库,则加载获取的动态链接库到当前进程中。若动态链接库信息为空信息,则不加载任何动态链接库。
当前进程是指调用应用程序编程接口的程序运行时所启动的进程。
上述防注入的装置,调用应用程序编程接口时,通过Hook函数读取注册表信息,并按照预设策略获取动态链接库信息,加载动态链接库信息到当前进程中,通过预设策略筛选了动态链接库,而不是直接由应用程序编程接口读取注册表信息获取动态链接库进行加载,不需人工识别,能防止出错,且能加载应用程序编程接口,因筛选过动态链接库,调用应用程序编程接口安全性高。
在一个实施例中,该获取模块530还用于通过该Hook函数读取注册表信息,判断读取的注册表位置是否为预先记录的与注入相关的注册表位置,若判断出读取的注册表位置为预先记录的与注入相关的注册表位置,则根据该调用指令分析读取到的动态链接库信息,根据预设策略从读取到的动态链接库信息中剔除不需要注入的动态链接库,并获取剩余的动态链接库;以及还用于若判断出读取的注册表位置不为预先记录的与注入相关的注册表位置,则根据调用指令直接获取动态链接库信息。
该加载模块540还用于加载该剩余的动态链接库到当前进程。
上述通过Hook函数判断读取的注册表位置是否为与注入相关的位置,若是,则分析读取到的DLL信息,根据预设策略筛选能加载的DLL,如此加载的DLL均为信任的DLL,其安全性高,通过Hook函数进行检测判断,方便且准确性高,能防止出错。
图6为另一个实施例中防注入的装置的结构框图。如图6所示,一种防注入的装置,除了包括调用模块510、进入模块520、获取模块530和加载模块540,还包括记录模块550。其中:
记录模块550用于预先记录动态链接库注入信息的注册表位置。通过记录动态链接库注入信息的注册表位置方便进行比较判断获取的注册表位置是否为动态链接库注入信息的注册表位置。
为了更加清楚的说明防注入的方法和装置,以电脑管家应用程序为例。因稳定性是软件的基础,软件在运行过程中需要加载系统的模块、软件自身模块以及第三方注入的模块,一般来说,软件自身模块经过软件开发组的测试是相对稳定的,而对于第三方注入的模块,由于种类众多,开发力量悬殊,测试不充分等原因,注入到软件后导致软件工作不正常、崩溃等,对软件的打击是致命的。注入的模块即指动态链接库(DLL)。如图7所示,在未采用防注入的方法之前,电脑管家应用程序启动后对应的进程被注入了相关的软件模块,例如,DLL的名称为TortoiseSVN32.dll,描述为TortoiseSVN shell extension client,公司名称为http://tortoisesvn.net,路径为D:\TortoiseSVN\bin\TortoiseSVN32.dll;DLL的名称为TortoiseStub32.dll,描述为TortoiseSVN shell extension client,公司名称为http://tortoisesvn.net,路径为D:\TortoiseSVN\bin\TortoiseStub32.dll;DLL的名称为libsvn_tsvn32.dll,描述为subversion library dll built for TortoiseSVNshell extension client,公司名称为http://subversion.apache.org/,路径为D:\TortoiseSVN\bin\libsvn_tsvn32.dll等,电脑管家自身所需的软件模块可包括DLL的名称为GdiPlus.dll,描述为Microsoft GDI+,公司名称为Microsoft Corporation,路径为C:\Windows\winsxs\x86_microsoft.windows.gdiplus_6595b64;DLL的名称为comctl32.dll,描述为用户体验控件库,公司名称为Microsoft Corporation,路径为C:\Windows\winsxs\x86_microsoft.windows.commom-controls;DLL的名称为msvcr80.dll,描述为Microsoft C Runtime Library,公司名称为MicrosoftCorporation,路径为C:\Windows\winsxs\x86_microsoft.vc80.crt_lfc8b3b9ale8e3等。一旦这些模块内部发生了异常会导致整个管家进程也异常退出,从某个角度来看,攻击者也可以通过注入的DLL,攻击电脑管家。
通过防注入的方法,电脑管家调用API时,API内部读取注册表,进入Hook函数,Hook函数读取注册表信息,筛选剔除第三方的DLL,得到剩余的DLL信息,将剩余的DLL信息返回给API,API加载剩余的DLL到当前电脑管家进程。如图8所示,电脑管家的进程不再注入第三方的DLL模块,只加载系统自身的一些DLL,例如DLL的名称为GdiPlus.dll,描述为Microsoft GDI+,公司名称为Microsoft Corporation;DLL的名称为comctl32.dll,描述为用户体验控件库,公司名称为Microsoft Corporation;DLL的名称为msvcr80.dll,描述为Microsoft C Runtime Library,公司名称为Microsoft Corporation等。如此不但节省了内存,还保证了电脑管家进程的稳定性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)等。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (12)

1.一种防注入的方法,包括以下步骤:
获取应用程序编程接口的调用指令;
根据所述调用指令在应用程序编程接口内部读取注册表信息时,进入Hook函数;
通过所述Hook函数读取注册表信息,并根据预设策略获取动态链接库信息;
加载获取的动态链接库信息到当前进程。
2.根据权利要求1所述的方法,其特征在于,所述通过所述Hook函数读取注册表信息,并根据预设策略获取动态链接库信息的步骤包括:
通过所述Hook函数读取注册表信息,判断读取的注册表位置是否为预先记录的与注入相关的注册表位置;
若判断出读取的注册表位置为预先记录的与注入相关的注册表位置,则根据所述调用指令分析读取到的动态链接库信息,根据预设策略从读取到的动态链接库信息中剔除不需要注入的动态链接库,并获取剩余的动态链接库;
所述加载获取的动态链接库信息到当前进程的步骤包括:
加载所述剩余的动态链接库到当前进程。
3.根据权利要求2所述的方法,其特征在于,通过所述Hook函数读取注册表信息,并根据预设策略获取动态链接库信息的步骤包括还包括:
若判断出读取的注册表位置不为预先记录的与注入相关的注册表位置,则根据调用指令直接获取动态链接库信息。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述预设策略包括数字签名、白名单和黑名单中一种或两种以上,所述白名单用于记录允许注入的动态链接库的属性信息,所述黑名单用于记录不允许注入的动态链接库的属性信息;
通过所述Hook函数读取注册表信息,并根据预设策略获取动态链接库信息的步骤包括:
通过所述Hook函数读取注册表信息,并根据数字签名、白名单和黑名单中一种或两种以上筛选得到允许注入的动态链接库。
5.根据权利要求1所述的方法,其特征在于,所述预设策略为不允许任何动态链接库注入;
通过所述Hook函数读取注册表信息,并根据预设策略获取动态链接库信息的步骤包括:
通过所述Hook函数读取注册表信息,并根据预设策略获取空信息给应用程序编程接口。
6.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
预先记录动态链接库注入信息的注册表位置。
7.一种防注入的装置,其特征在于,包括:
调用模块,用于获取应用程序编程接口的调用指令;
进入模块,用于根据所述调用指令在应用程序编程接口内部读取注册表信息时,进入Hook函数;
获取模块,用于通过所述Hook函数读取注册表信息,并根据预设策略获取动态链接库信息;
加载模块,用于加载获取的动态链接库信息到当前进程。
8.根据权利要求7所述的装置,其特征在于,所述获取模块还用于通过所述Hook函数读取注册表信息,判断读取的注册表位置是否为预先记录的与注入相关的注册表位置,若判断出读取的注册表位置为预先记录的与注入相关的注册表位置,则根据所述调用指令分析读取到的动态链接库信息,根据预设策略从读取到的动态链接库信息中剔除不需要注入的动态链接库,并获取剩余的动态链接库;
所述加载模块还用于加载所述剩余的动态链接库到当前进程。
9.根据权利要求8所述的装置,其特征在于,所述获取模块还用于若判断出读取的注册表位置不为预先记录的与注入相关的注册表位置,则根据调用指令直接获取动态链接库信息。
10.根据权利要求7至9中任一项所述的装置,其特征在于,所述预设策略包括数字签名、白名单和黑名单中一种或两种以上,所述白名单用于记录允许注入的动态链接库的属性信息,所述黑名单用于记录不允许注入的动态链接库的属性信息;
所述获取模块还用于通过所述Hook函数读取注册表信息,并根据数字签名、白名单和黑名单中一种或两种以上筛选得到允许注入的动态链接库。
11.根据权利要求7所述的装置,其特征在于,所述预设策略为不允许任何动态链接库注入;
所述获取模块还用于通过所述Hook函数读取注册表信息,并根据预设策略获取空信息给应用程序编程接口。
12.根据权利要求7至9中任一项所述的装置,其特征在于,所述装置还包括:
记录模块,用于预先记录动态链接库注入信息的注册表位置。
CN201510382748.7A 2015-07-02 2015-07-02 防注入的方法和装置 Active CN106326735B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510382748.7A CN106326735B (zh) 2015-07-02 2015-07-02 防注入的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510382748.7A CN106326735B (zh) 2015-07-02 2015-07-02 防注入的方法和装置

Publications (2)

Publication Number Publication Date
CN106326735A true CN106326735A (zh) 2017-01-11
CN106326735B CN106326735B (zh) 2020-04-03

Family

ID=57726949

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510382748.7A Active CN106326735B (zh) 2015-07-02 2015-07-02 防注入的方法和装置

Country Status (1)

Country Link
CN (1) CN106326735B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106681813A (zh) * 2016-12-15 2017-05-17 腾讯科技(深圳)有限公司 一种系统管理方法及装置
WO2020019521A1 (zh) * 2018-07-27 2020-01-30 平安科技(深圳)有限公司 一种风险检测方法和装置
CN111026609A (zh) * 2019-12-06 2020-04-17 深信服科技股份有限公司 一种信息审计方法、系统、设备及计算机可读存储介质
CN111046377A (zh) * 2019-12-25 2020-04-21 五八同城信息技术有限公司 加载动态链接库的方法、装置、电子设备及存储介质
CN111367684A (zh) * 2018-12-26 2020-07-03 北京天融信网络安全技术有限公司 一种过滤远程过程调用的方法和装置
CN111984968A (zh) * 2020-09-07 2020-11-24 中国银行股份有限公司 命令执行方法及装置
CN116204336A (zh) * 2023-02-16 2023-06-02 中国人民解放军61660部队 一种基于注册表回调机制的用户态核心态同步方法与系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030101292A1 (en) * 2001-11-29 2003-05-29 Fisher Joseph A. System and method for isolating applications from each other
CN101005497A (zh) * 2006-11-27 2007-07-25 科博技术有限公司 一种阻止恶意代码入侵的系统及方法
US20090198994A1 (en) * 2008-02-04 2009-08-06 Encassa Pty Ltd Updated security system
CN103019674A (zh) * 2012-11-15 2013-04-03 北京奇虎科技有限公司 注册表重定向方法和装置
CN103428190A (zh) * 2012-05-25 2013-12-04 阿里巴巴集团控股有限公司 一种远程桌面控制识别的方法和装置
CN103714292A (zh) * 2014-01-15 2014-04-09 四川师范大学 一种漏洞利用代码的检测方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030101292A1 (en) * 2001-11-29 2003-05-29 Fisher Joseph A. System and method for isolating applications from each other
CN101005497A (zh) * 2006-11-27 2007-07-25 科博技术有限公司 一种阻止恶意代码入侵的系统及方法
US20090198994A1 (en) * 2008-02-04 2009-08-06 Encassa Pty Ltd Updated security system
CN103428190A (zh) * 2012-05-25 2013-12-04 阿里巴巴集团控股有限公司 一种远程桌面控制识别的方法和装置
CN103019674A (zh) * 2012-11-15 2013-04-03 北京奇虎科技有限公司 注册表重定向方法和装置
CN103714292A (zh) * 2014-01-15 2014-04-09 四川师范大学 一种漏洞利用代码的检测方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106681813A (zh) * 2016-12-15 2017-05-17 腾讯科技(深圳)有限公司 一种系统管理方法及装置
WO2020019521A1 (zh) * 2018-07-27 2020-01-30 平安科技(深圳)有限公司 一种风险检测方法和装置
CN111367684A (zh) * 2018-12-26 2020-07-03 北京天融信网络安全技术有限公司 一种过滤远程过程调用的方法和装置
CN111367684B (zh) * 2018-12-26 2023-11-10 北京天融信网络安全技术有限公司 一种过滤远程过程调用的方法和装置
CN111026609A (zh) * 2019-12-06 2020-04-17 深信服科技股份有限公司 一种信息审计方法、系统、设备及计算机可读存储介质
CN111026609B (zh) * 2019-12-06 2021-11-19 深信服科技股份有限公司 一种信息审计方法、系统、设备及计算机可读存储介质
CN111046377A (zh) * 2019-12-25 2020-04-21 五八同城信息技术有限公司 加载动态链接库的方法、装置、电子设备及存储介质
CN111046377B (zh) * 2019-12-25 2023-11-14 五八同城信息技术有限公司 加载动态链接库的方法、装置、电子设备及存储介质
CN111984968A (zh) * 2020-09-07 2020-11-24 中国银行股份有限公司 命令执行方法及装置
CN116204336A (zh) * 2023-02-16 2023-06-02 中国人民解放军61660部队 一种基于注册表回调机制的用户态核心态同步方法与系统
CN116204336B (zh) * 2023-02-16 2023-09-22 中国人民解放军61660部队 一种基于注册表回调机制的用户态核心态同步方法与系统

Also Published As

Publication number Publication date
CN106326735B (zh) 2020-04-03

Similar Documents

Publication Publication Date Title
CN106326735A (zh) 防注入的方法和装置
US11184359B2 (en) Automated access control policy generation for computer resources
KR101619557B1 (ko) 커스터마이즈된 컴퓨터 응용 프로그램 패키지
CN110310205B (zh) 一种区块链数据监控方法、装置、设备和介质
US8875106B2 (en) Automated testing process
US10193914B2 (en) Methods and systems for providing security for page framing
CN104680084B (zh) 计算机中保护用户隐私的方法和系统
CN108228188A (zh) 一种视图组件处理方法、电子设备及可读存储介质
US9747449B2 (en) Method and device for preventing application in an operating system from being uninstalled
US8621613B1 (en) Detecting malware in content items
CN106295333A (zh) 用于检测恶意代码的方法和系统
US20070169065A1 (en) Computer program with metadata management function
CN106874028A (zh) 应用部署方法和装置
CN104268472B (zh) 还原被第三方动态库修改函数地址的方法和装置
CN110855642B (zh) 应用漏洞检测方法、装置、电子设备及存储介质
CN111683047A (zh) 越权漏洞检测方法、装置、计算机设备及介质
CN105893847A (zh) 一种保护安全防护应用程序文件的方法、装置及电子设备
RU2645265C2 (ru) Система и способ блокировки элементов интерфейса приложения
CN107194277A (zh) 面向安卓广告库的细粒度权限管理方法及系统
CN104580108A (zh) 信息提示方法和系统、服务器
Stirparo et al. In-memory credentials robbery on android phones
CN109522683A (zh) 软件溯源方法、系统、计算机设备及存储介质
CN116595523A (zh) 基于动态编排的多引擎文件检测方法、系统、设备及介质
CN116702126A (zh) 应用访问控制方法和装置、计算设备和可读存储介质
CN108052842B (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