CN110968867B - 防止不良dll注入的方法、存储介质、电子设备及系统 - Google Patents
防止不良dll注入的方法、存储介质、电子设备及系统 Download PDFInfo
- Publication number
- CN110968867B CN110968867B CN201811149046.4A CN201811149046A CN110968867B CN 110968867 B CN110968867 B CN 110968867B CN 201811149046 A CN201811149046 A CN 201811149046A CN 110968867 B CN110968867 B CN 110968867B
- Authority
- CN
- China
- Prior art keywords
- dll
- injection
- bad
- function
- abnormal
- 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
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
-
- 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/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种防止不良DLL注入的方法、存储介质、电子设备及系统,涉及互联网PC客户端应用开发领域,该方法包括获取异常DLL名单。遍历Windows系统中DLL库,查找异常DLL所在位置。根据异常DLL所在位置检索所述异常DLL,获取异常DLL中注入函数的位置,所述注入函数为向客户端注入DLL的函数。根据异常DLL中注入函数的位置,重写异常DLL中的所有注入函数,并在注入函数中加入hook函数,所述hook函数用于监测注入函数注入的DLL名称。将所述DLL名称和预设的不良DLL名单进行比对,若注入DLL为不良DLL则终止不良DLL的注入。本发明能够防止在Windows中运行的客户端被注入不良DLL,进而避免客户端崩溃、被黑客入侵。
Description
技术领域
本发明涉及互联网PC客户端应用开发领域,具体涉及一种防止不良DLL注入的方法、存储介质、电子设备及系统。
背景技术
DLL文件英文全称为Dynamic Link Library文件,又称为应用程序扩展,是一种软件文件。在Windows系统中,对于通用或者可以共用的函数,如果每一个软件都自己编写并存储,将会出现大量的重复函数,同时Windows对这些功能甚至代码都一样的函数不容易管理。Windows系统中,许多应用程序并不是一个完整的可执行文件,他们带有部分的相对独立的动态链接库,即DLL文件,当执行该程序时候,相应的DLL文件由于动态链接,会被调用,进而辅助程序的运行。因此,一个应用程序可能会使用多个DLL文件,而一个DLL文件可能会被不同应用程序调用。
但是,在DLL被不同应用程序调用的时候,其可能被程序软件篡改连接,造成不良的链接,或者直接被恶意程序篡改链接,前者可能导致客户端/程序/软件奔溃,后者可能导致黑客入侵、平台软件被挟持设置用户机密泄露。
因此亟须一种方法能够有效的阻止这些不良的DLL注入到客户端中。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种防止不良DLL注入的方法、存储介质、电子设备及系统,能够防止在Windows中运行的客户端被注入不良DLL,进而导致客户端崩溃、被黑客入侵。
为达到以上目的,第一方面,本发明实施例提供一种防止不良DLL注入的方法,用于阻止Windows系统的客户端被不良DLL注入,其包括:
获取异常DLL名单;
遍历Windows系统中DLL库,查找异常DLL所在位置;
根据异常DLL所在位置检索所述异常DLL,获取异常DLL中注入函数的位置,所述注入函数为向客户端注入DLL的函数;
根据异常DLL中注入函数的位置,重写异常DLL中的所有注入函数,并在注入函数中加入hook函数,所述hook函数用于监测注入函数注入的DLL名称;
将所述DLL名称和预设的不良DLL名单进行比对,若注入DLL为不良DLL则终止不良DLL的注入。
作为一个可选的实施方案,将所述DLL名称和预设的不良DLL名单进行比对,若注入DLL为不良DLL则终止不良DLL的注入包括:
设置访问控制模块,所述访问控制模块用于记录有不良DLL名单;
将hook函数监测到的DLL名称与不良DLL名单进行比对,若不良DLL名单中有hook函数监测到的DLL名称,则判断该DLL为不良DLL并终止不良DLL的注入。
作为一个可选的实施方案,
设置访问控制模块,所述访问控制模块用于记录允许访问的DLL名单;
将将hook函数监测到的DLL名称与允许访问的DLL名单进行比对,若允许访问的DLL名单中没有hook函数监测到的DLL名称,则判断该DLL为不良DLL并终止不良DLL的注入。
作为一个可选的实施方案,通过所述注入函数名称以及所述注入函数在异常DLL中的位置,在注入函数中加入hook函数,并为hook函数进行函数注册。
作为一个可选的实施方案,使用Lhinstallhook函数在注入函数中加入hook函数,并返回所述注入函数的名称以及所述注入函数在异常DLL中的位置。
作为一个可选的实施方案,所述注入函数为loadlibrary函数。
作为一个可选的实施方案,通过用户反馈和客户端发送的崩溃报告形成不良DLL名单。
第二方面,本发明实施例提供一种防止不良DLL注入的系统,其包括:
接口模块,用于获取异常DLL名单;
DLL检索模块,用于遍历Windows系统中DLL库,查找异常DLL所在位置;
函数检索模块,用于根据异常DLL所在位置检索所述异常DLL,获取异常DLL中注入函数的位置,所述注入函数为向客户端注入DLL的函数;
Hook模块,用于根据异常DLL中注入函数的位置,重写异常DLL中的所有注入函数,并在注入函数中加入hook函数,所述hook函数用于监测注入函数注入的DLL名称;
监控模块,用于将所述DLL名称和预设的不良DLL名单进行比对,若注入DLL为不良DLL则终止不良DLL的注入。
第三方面,本发明实施例还提供一种存储介质,该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面实施例中的方法。
第四方面,本发明实施例还提供一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面实施例中的方法。
与现有技术相比,本发明的优点在于:
(1)本发明一种防止不良DLL注入的方法、存储介质、电子设备及系统通过查找异常DLL中的注入函数,并对注入函数hook,即进行重写和检测,能够有效防止注入函数向客户端注入不良DLL,进而防止客户端崩溃,保持了客户端的稳定性,提高用户的体验,同时防止诸如函数想客户端注入不良DLL,也能够防止第三方向客户端进行数据篡改,保证了客户端以及用户信息的数据安全,提高了整个平台的安全性。
(2)本发明一种防止不良DLL注入的方法、存储介质、电子设备及系统通过设置访问控制模块记录不良DLL名单或者记录允许访问的DLL名单,帮助客户端有效识别不良DLL十分便利。
(3)本发明一种防止不良DLL注入的方法、存储介质、电子设备及系统通过用户反馈和客户端发送的崩溃报告形成不良DLL名单,对于运行与Windows系统中的软件/客户端而言,除了在开发时候再固定环境中进行测试,在不同用户、不同运行环境中运行能够更加迅速测试软件/客户端的稳定度,收集用户的反馈以及客户端发送的崩溃报告则能够更加迅速、有效且客观的反应对于软件/客户端来说,运行时候,哪些DLL是不良的DLL,会造成客户端出现异常情况。
(4)本发明一种防止不良DLL注入的方法、存储介质、电子设备及系统针对loadlibrary函数进行重写和hook,对于现今Windows的注入DLL来说,大部分都是采用WindowsAPI的loadlibrary进行加载/注入DLL的,因此针对loadliabray能够有效防止大部分的DLL注入。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面对实施例对应的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一种防止不良DLL注入的方法的流程示意图;
图2为本发明实施例I一种防止不良DLL注入的系统的结构示意图。
1-接口模块,2-DLL检索模块,3-函数检索模块4-Hook模块,5-监控模块。
具体实施方式
以下结合附图对本发明的实施例作进一步详细说明。
参见图1所示,本发明实施例提供一种防止不良DLL注入的方法、存储介质、电子设备及系统,其通过对注入函数进行hook,能够有效的监控,同时能够防止在Windows中运行的客户端被注入不良DLL,进而导致客户端崩溃、被黑客入侵。
为达到上述技术效果,本申请提供实施例的总体思路如下:
一种防止不良DLL注入的方法,用于阻止Windows系统的客户端被不良DLL注入,其包括
获取异常DLL名单;
遍历Windows系统中DLL库,查找异常DLL所在位置;
根据异常DLL所在位置检索所述异常DLL,获取异常DLL中注入函数的位置,所述注入函数为向客户端注入DLL的函数;
根据异常DLL中注入函数的位置,重写异常DLL中的所有注入函数,并在注入函数中加入hook函数,所述hook函数用于监测注入函数注入的DLL名称;
将所述DLL名称和预设的不良DLL名单进行比对,若注入DLL为不良DLL则终止不良DLL的注入。
综上所述,DLL作为Windows系统中的动态链接库文件,基本上大部分的软件在Windows系统中运行时候,都会进行调用,以节省软件空间、提升软件的运行速度。但是作为动态链接库文件,其具有局限性,即不一定能够兼容所有环境下的所有软件的运行,对于部分Windows中运行的客户端来说,可能在使用某一个具体的DLL时候,由于内存冲突、等等兼容性问题而导致整个客户端运行异常甚至崩溃。
此外对于一些不法分子来说,软件经常使用的DLL中的注入函数如果能够进行“绑架”直接调用自己编写的不法DLL,以损害软件、用户甚至整个平台为代价达到自己谋利的目的,也是可行的。
因此本发明需要对注入的函数进行监控,防止其注入不良DLL,避免不良DLL影响软件/客户端的运行,阻止不法分子对客户端的入侵行为,保护客户端、用户以及整个平台的数据安全。
而对于使用DLL的软件来说,其普遍会调用大量的不同地方的DLL中的函数,这些函数位于不同目录下的DLL中的不同位置,且有的是注入函数有的不是注入函数。
因此本发明不会对Windows的DLL库中的所有DLL进行监控,只针对其使用的异常DLL进行检测,增加了可行性,同时减少了资源浪费,使得运行更加流畅,提高用户的体验。
而在找到异常DLL后,本发明会进一步的监控其中的注入函数,通过hook函数对其注入的DLL进行监控,如果为不良函数,则终止其注入,保证了软件的稳定运行以及数据安全。
为了更好的理解上述技术方案,下面结合具体实施方式进行详细的说明。
实施例一
本发明实施例提供一种防止不良DLL注入的方法,其包括:
S1:获取异常DLL名单。
对于软件来说,其在不同环境中运行时候,不可能全部稳定的运行。在Windows系统中运行的软件其不稳定运行的原因,一般不会是使用自身的函数运行,而是在调用Windows系统中DLL时候出现的异常。对于这些异常DLL,如果需要防止其造成软件不稳地、崩溃以及被入侵等等,是需要进一步处理的。
S2:遍历Windows系统中DLL库,查找异常DLL所在位置。
要对异常DLL处理,首先得找到DLL的位置,在Windows中,其DLL集中存储在DLL库中,因此通过直接在Windows系统的DLL库中直接查找异常DLL所在的位置。
S3:根据异常DLL所在位置检索所述异常DLL,获取异常DLL中注入函数的位置,所述注入函数为向客户端注入DLL的函数。
对于软件不稳定、崩溃以及被入侵等等原因中,有很大一部分原因是其引入了不良DLL,而引入不良DLL的通常是异常DLL中的注入函数,这些函数将不良DLL代入软件的运行中,使得软件不再正常的运行,进而发生异常、崩溃甚至被黑客入侵。因此对异常DLL中的注入函数是需要定位,然后处理的。
作为一个可选的实施方案,针对异常DLL中的loadlibrary函数进行具体的注入,在Windows系统中,大部分软件的注入方式均使用了WindowsAPI:LoadLibrary来加载DLL。因此针对loadlibrary进行hook并监控能够防止大部分的异常状态。
作为一个优选的实施方案,由于不同的函数存在不同编码字符集,如中英文可能编码不同,因此Windows系统API:LoadLibrary提供了两种不同函数LoadLibraryA和LoadLibraryW函数,因此需要对不同编码下的这两种函数进行重写和添加hook,即LoadLibraryA以及LoadLibraryW函数的内容。
S4:根据异常DLL中注入函数的位置,重写异常DLL中的所有注入函数,并在注入函数中加入hook函数,所述hook函数用于监测注入函数注入的DLL名称。
Hook函数能够“钩住”注入函数,在注入函数向软件注入DLL时候触发,并进行具体的操作。而在本发明实施例中,其具体操作即为监控,在注入DLL时候返回注入的DLL的名称。在DLL中函数中加入hook后,即为进行了重写。
作为一个可选的实施例,通过所述注入函数名称以及所述注入函数在异常DLL中的位置,在注入函数中加入hook函数,并为hook函数在Windows系统内进行函数注册。
进一步的,通过使用Windows的API Lhinstallhook函数在注入函数中加入hook函数。Lhinstallhook只需要当前函数的名称,异常DLL所在目录,就能够进行具体的hook函数添加,以及监控,极大的减轻了软件运行的工作量,也降低了其占用的资源,使得软件运行更加效率、流畅。
S5:将所述DLL名称和预设的不良DLL名单进行比对,若注入DLL为不良DLL则终止不良DLL的注入。
在hook函数返回注入的DLL后,需要进一步的判断。在软件运行时候,其需要注入能够帮助其正常运行的DLL,而不需要影响其运行或者数据的不良DLL。因此需要将DLL名称和预设的不良DLL进行比对,若注入DLL为不良DLL,则终止不良DLL的注入,即使该注入函数失效即可。
作为一个优选的实施例,设置访问控制模块,所述访问控制模块用于记录有不良DLL名单。
举例来说,将DLL名单设置于Windows的ACL(Access Control List,访问控制列表),Windows系统通过控制ACL来判断是否执行设置的Hook函数。
进一步的,EasyHook提供两种ACL表,一种是线程包含方式(LhSetInclusiveACL),一种是线程排除方式(LhSetExclusiveACL),线程包含方式,对于加入到ACL中的线珵,全部Hook(其指的是包含第三方以及本应用程序线程,非DLL)。线程排除方式,对于加入到ACL中的线程,全部取消Hook。由于本文使用的是防止第三方DLL注入,因此本实施例采用的是LhSetExclusiveACL,即排除方法。
作为一个可选的实施例,设置访问控制模块,所述访问控制模块用于记录允许访问的DLL名单。
将将hook函数监测到的DLL名称与允许访问的DLL名单进行比对,若允许访问的DLL名单中没有hook函数监测到的DLL名称,则判断该DLL为不良DLL并终止不良DLL的注入
基于同一发明构思,本申请提供实施例二,其具体实施方式如下。
实施例二
本发明实施例提供一种防止不良DLL注入的系统,其包括:
接口模块,用于获取异常DLL名单;
DLL检索模块,用于遍历Windows系统中DLL库,查找异常DLL所在位置;
函数检索模块,用于根据异常DLL所在位置检索所述异常DLL,获取异常DLL中注入函数的位置,所述注入函数为向客户端注入DLL的函数;
Hook模块,用于根据异常DLL中注入函数的位置,重写异常DLL中的所有注入函数,并在注入函数中加入hook函数,所述hook函数用于监测注入函数注入的DLL名称;
监控模块,用于将所述DLL名称和预设的不良DLL名单进行比对,若注入DLL为不良DLL则终止不良DLL的注入。
前述方法实施例中的各种变化方式和具体实例同样适用于本实施例的系统,通过前述方法的详细描述,本领域技术人员可以清楚的知道本实施例中系统的实施方法,所以为了说明书的简洁,在此不再详述。
基于同一发明构思,本申请提供实施例三。
实施例三
本发明第三实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的视频推荐方法,该方法包括:
获取目标用户在预设时间内的各已观看视频和各未观看视频,其中,未观看视频包括第一未观看视频和第二未观看视频;
根据协同过滤算法和各已观看视频,从各第一未观看视频中确定候选推荐集;
根据预设添加规则,将第二未观看视频添加至候选推荐集,确定各添加推荐集;
根据各添加推荐集中各推荐视频对应的用户观看信息或者视频属性信息,以及各已观看视频对应的用户观看信息或者视频属性信息,确定各添加推荐集对应的推荐质量度;
根据各推荐质量度以及与预设添加规则对应的预设推荐规则,确定目标推荐集。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。基于同一发明构思,本申请提供实施例四。
实施例四
本发明第四实施例还提供一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一实施例中的所有方法步骤或部分方法步骤。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、视频数据等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
总体来说,本发明实施例提供的一种防止不良DLL注入的方法、存储介质、电子设备及系统,通过查找异常DLL的位置,并定位注入函数,然后对注入函数重写和hook,监控其注入的DLL,如果是不良DLL这终止该注入进程,相较于传统的技术,能够通过监控较少的函数,就能够更好的防止不良DLL的注入,使得软件运行稳定、安全,同时消耗较少的资源,使得用户拥有更好的体验。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (9)
1.一种防止不良DLL注入的方法,用于阻止Windows系统的客户端被不良DLL注入,其特征在于,其包括:
获取异常DLL名单;
遍历Windows系统中DLL库,查找异常DLL所在位置;
根据异常DLL所在位置检索所述异常DLL,获取异常DLL中注入函数的位置,所述注入函数为向客户端注入DLL的函数;
根据异常DLL中注入函数的位置,重写异常DLL中的所有注入函数,并在注入函数中加入hook函数,所述hook函数用于监测注入函数注入的DLL名称;
将所述DLL名称和预设的不良DLL名单进行比对,若注入DLL为不良DLL则终止不良DLL的注入;
将所述DLL名称和预设的不良DLL名单进行比对,若注入DLL为不良DLL则终止不良DLL的注入包括:
设置访问控制模块,所述访问控制模块用于记录有不良DLL名单;
将hook函数监测到的DLL名称与不良DLL名单进行比对,若不良DLL名单中有hook函数监测到的DLL名称,则判断该DLL为不良DLL并终止不良DLL的注入;
所述不良DLL名单设置于的访问控制列表,Hook所有加入到ACL中的线珵。
2.如权利要求1所述的方法,其特征在于:设置访问控制模块,所述访问控制模块用于记录允许访问的DLL名单;
将将hook函数监测到的DLL名称与允许访问的DLL名单进行比对,若允许访问的DLL名单中没有hook函数监测到的DLL名称,则判断该DLL为不良DLL并终止不良DLL的注入。
3.如权利要求1所述的方法,其特征在于:
通过所述注入函数名称以及所述注入函数在异常DLL中的位置,在注入函数中加入hook函数,并为hook函数进行函数注册。
4.如权利要求3所述的方法,其特征在于:
使用Lhinstallhook函数在注入函数中加入hook函数,其使用所述注入函数的名称以及所述注入函数在异常DLL中的位置进行注入。
5.如权利要求1所述的方法,其特征在于:所述注入函数为的loadlibrary函数。
6.如权利要求1所述的方法,其特征在于:通过用户反馈和客户端发送的崩溃报告形成不良DLL名单。
7.一种存储介质,该存储介质上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至6任一项所述的方法。
8.一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,其特征在于:所述处理器执行所述计算机程序时实现权利要求1至6任一项所述的方法。
9.一种防止不良DLL注入的系统,其特征在于,其包括:
接口模块,用于获取异常DLL名单;
DLL检索模块,用于遍历Windows系统中DLL库,查找异常DLL所在位置;
函数检索模块,用于根据异常DLL所在位置检索所述异常DLL,获取异常DLL中注入函数的位置,所述注入函数为向客户端注入DLL的函数;
Hook模块,用于根据异常DLL中注入函数的位置,重写异常DLL中的所有注入函数,并在注入函数中加入hook函数,所述hook函数用于监测注入函数注入的DLL名称;
监控模块,用于将所述DLL名称和预设的不良DLL名单进行比对,若注入DLL为不良DLL则终止不良DLL的注入;
所述监控模块,具体用于:
设置访问控制模块,所述访问控制模块用于记录有不良DLL名单;
将hook函数监测到的DLL名称与不良DLL名单进行比对,若不良DLL名单中有hook函数监测到的DLL名称,则判断该DLL为不良DLL并终止不良DLL的注入;
所述不良DLL名单设置于的访问控制列表,Hook所有加入到ACL中的线珵。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811149046.4A CN110968867B (zh) | 2018-09-29 | 2018-09-29 | 防止不良dll注入的方法、存储介质、电子设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811149046.4A CN110968867B (zh) | 2018-09-29 | 2018-09-29 | 防止不良dll注入的方法、存储介质、电子设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110968867A CN110968867A (zh) | 2020-04-07 |
CN110968867B true CN110968867B (zh) | 2022-04-08 |
Family
ID=70028029
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811149046.4A Active CN110968867B (zh) | 2018-09-29 | 2018-09-29 | 防止不良dll注入的方法、存储介质、电子设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110968867B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105512548A (zh) * | 2015-12-02 | 2016-04-20 | 湘潭大学 | 基于隐藏可执行镜像并注入dll保护镜像代码的方法 |
KR20160117183A (ko) * | 2015-03-30 | 2016-10-10 | 홍동철 | Dll 파일 암호화 방법, 이를 수행하는 dll 파일 암호화 시스템, 및 이를 저장하는 기록매체 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999354B (zh) * | 2012-11-15 | 2015-12-02 | 北京奇虎科技有限公司 | 文件加载方法和装置 |
CN106778234A (zh) * | 2015-11-19 | 2017-05-31 | 珠海市君天电子科技有限公司 | 应用程序的防护方法及装置 |
CN105956475A (zh) * | 2016-05-17 | 2016-09-21 | 北京金山安全软件有限公司 | Dll文件的拦截处理方法、装置及电子设备 |
-
2018
- 2018-09-29 CN CN201811149046.4A patent/CN110968867B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160117183A (ko) * | 2015-03-30 | 2016-10-10 | 홍동철 | Dll 파일 암호화 방법, 이를 수행하는 dll 파일 암호화 시스템, 및 이를 저장하는 기록매체 |
CN105512548A (zh) * | 2015-12-02 | 2016-04-20 | 湘潭大学 | 基于隐藏可执行镜像并注入dll保护镜像代码的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110968867A (zh) | 2020-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9953161B2 (en) | Method, device and system for processing notification bar message | |
US20200382302A1 (en) | Security privilege escalation exploit detection and mitigation | |
US9083692B2 (en) | Apparatus and method of providing security to cloud data to prevent unauthorized access | |
US9747449B2 (en) | Method and device for preventing application in an operating system from being uninstalled | |
US20230367914A1 (en) | Systems, devices, and methods for prevention of recording content | |
WO2015063405A1 (fr) | Systeme de detection d'intrusion dans un dispositif comprenant un premier systeme d'exploitation et un deuxieme systeme d'exploitation | |
US20220083630A1 (en) | Protecting an item of software | |
KR20140055897A (ko) | 사용자 단말기, 신뢰성 관리 서버, 부정 원격 조작 방지 방법, 및 부정 원격 조작 방지 프로그램이 기록된, 컴퓨터로 판독 가능한 기록매체 | |
CN110968867B (zh) | 防止不良dll注入的方法、存储介质、电子设备及系统 | |
US11874920B2 (en) | Systems and methods for preventing injections of malicious processes in software | |
CN107818260B (zh) | 保障系统安全的方法及装置 | |
US20140229526A1 (en) | Systems, methods and media for securely executing remote commands using cross-platform library | |
CN106485104B (zh) | 终端安全策略的自动修复方法和装置、系统 | |
CN112182581B (zh) | 应用测试方法、装置、应用测试设备和存储介质 | |
US20210144165A1 (en) | Method of threat detection | |
CN106203087B (zh) | 注入防护方法、系统、终端以及存储介质 | |
CN114039779A (zh) | 一种安全接入网络的方法、装置、电子设备及存储介质 | |
CN112464225A (zh) | 一种请求处理方法、请求处理装置及计算机可读存储介质 | |
CN110633566A (zh) | 一种侵入检测方法、装置、终端设备及介质 | |
CN111026423A (zh) | 软件升级方法、装置、设备及存储介质 | |
CN113613044B (zh) | 视频播放方法、装置、存储介质及电子设备 | |
CN113612806B (zh) | 一种安全网络服务方法、装置、电子设备及介质 | |
CN113779570B (zh) | 一种基于核心进程的安全防护方法、装置及电子设备 | |
CN116108440B (zh) | 针对工控关键软件被注入的处理方法、装置、设备和介质 | |
US11025593B2 (en) | Template-based session control in proxy solutions |
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 |