一种动态链接库的检测方法和装置的制造方法

文档序号:9750531阅读:288来源:国知局
一种动态链接库的检测方法和装置的制造方法
【技术领域】
[0001] 本发明涉及计算机技术领域,尤其涉及一种动态链接库的检测方法和装置。
【背景技术】
[0002] 随着计算机技术的发展,客户端软件越来越广泛,为了能缩小软件体积,便于独立 开发和更好的发布迭代,在开发软件时采用动态链接库(英文全称Dynamic Link Library, 英文简称DLL)的方法,让各个模块之间保持相互独立,这样便可达到前述效果。但与此同 时,这样做也会带来一些难以避免的问题,比如:动态链接库的版本与可执行程序的版本不 一致,动态链接库被误删或改名等等,这些情况都会导致程序启动或运行时发生DLL缺失, 进而可能导致程序异常结束,甚至崩溃的情况。现有技术中在启动程序时无法发现DLL缺 失,也无法对DLL进行修复,导致每次启动程序时只有当程序启动失败时才能确定DLL缺 失。

【发明内容】

[0003] 本发明实施例提供了一种动态链接库的检测方法和装置,用于自动完成对DLL的 检测并进行修复提示。
[0004] 为解决上述技术问题,本发明实施例提供以下技术方案:
[0005] 第一方面,本发明实施例提供一种动态链接库的检测方法,包括:
[0006] 检测操作系统弹出的异常窗口事件;
[0007] 判断所述异常窗口事件是否为动态链接库DLL缺失事件;
[0008] 若所述异常窗口事件为所述DLL缺失事件,向所述操作系统面向的服务对象发送 提示信息,所述提示信息用于提示所述服务对象对所述DLL缺失事件对应的程序进行修 复。
[0009] 第二方面,本发明实施例还提供一种动态链接库的检测装置,包括:
[0010] 事件检测模块,用于检测操作系统弹出的异常窗口事件;
[0011] DLL判断模块,用于判断所述异常窗口事件是否为动态链接库DLL缺失事件;
[0012] 提示信息发送模块,用于当所述异常窗口事件为所述DLL缺失事件时,向所述操 作系统面向的服务对象发送提示信息,所述提示信息用于提示所述服务对象对所述DLL缺 失事件对应的程序进行修复。
[0013] 从以上技术方案可以看出,本发明实施例具有以下优点:
[0014] 在本发明实施例中,首先检测操作系统弹出的异常窗口事件,判断异常窗口事件 是否为DLL缺失事件,若异常窗口事件为DLL缺失事件,向操作系统面向的服务对象发送提 示信息,其中,提示信息用于提示服务对象对DLL缺失事件对应的程序进行修复。本发明 实施例中由于对操作系统弹出的异常窗口事件进行检测,可以通过异常窗口事件判断出有 程序产生了 DLL缺失,向操作系统面向的服务对象发送提示信息可以使服务对象及时针对 DLL缺失的程序进行修复,从而可以实现DLL缺失的自动感知,服务对象也可以基于这个自 动感知对发生DLL缺失的程序完成修复,以使得程序可以正常完成启动。
【附图说明】
[0015] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使 用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于 本领域的技术人员来讲,还可以根据这些附图获得其他的附图。
[0016] 图1为本发明实施例提供的一种动态链接库的检测方法的流程方框示意图;
[0017] 图2为本发明实施例提供的动态链接库的检测方法的一种实现过程示意图;
[0018] 图3为本发明实施例提供的使用SSDT Hook的实现过程示意图;
[0019] 图4_a为本发明实施例提供的一种动态链接库的检测装置的组成结构示意图;
[0020] 图4-b为本发明实施例提供的一种DLL判断模块的组成结构示意图;
[0021] 图4-c为本发明实施例提供的另一种DLL判断模块的组成结构示意图;
[0022] 图5为本发明实施例提供的动态链接库的检测方法应用于服务器的组成结构示 意图。
【具体实施方式】
[0023] 本发明实施例提供了一种动态链接库的检测方法和装置,用于自动完成对DLL的 检测并进行修复提示。
[0024] 为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明 实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述 的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域的 技术人员所获得的所有其他实施例,都属于本发明保护的范围。
[0025] 本发明的说明书和权利要求书及上述附图中的术语"包括"和"具有"以及他们的 任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设 备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固 有的其它单元。
[0026] 以下分别进行详细说明。
[0027] 本发明动态链接库的检测方法的一个实施例,具体可以应用于对发生DLL缺失的 应用程序处理中,请参阅图1所示,本发明一个实施例提供的动态链接库的检测方法,可以 包括如下步骤:
[0028] 101、检测操作系统弹出的异常窗口事件。
[0029] 在本发明实施例中,操作系统中启动各种程序以及执行各项系统功能时,当操作 系统中有错误导致系统无法正常运行时,操作系统会产生异常窗口事件,并向该操作系统 面向的服务对象弹出异常窗口事件,这个过程可以简称为弹窗,异常窗口事件是操作系统 产生的用于指示产生异常情况的窗口。本发明实施例中可执行应用程序在启动过程中,若 有错误导致可执行应用程序无法正常启动时,操作系统会产生异常窗口事件,本发明实施 例中动态链接库的检测装置可以对操作系统的弹窗行为检测,以检测操作系统是否弹出有 异常窗口事件。具体的,可以对操行系统进行实时检测,以监测操作系统是否产生了异常窗 口事件。
[0030] 在本发明的一些实施例中,步骤101检测操作系统弹出的异常窗口事件,具体可 以包括如下步骤:
[0031] 拦截操作系统中的NtRaiseHardError系统服务,获取NtRaiseHardError系统服 务弹出的异常窗口事件。
[0032] 其中,操作系统具体可以为windows系统,在windows系统中设置有 NtRaiseHardError系统服务,NtRaiseHardError用于管理windows系统中的各种弹窗,拦 截NtRaiseHardError系统服务就可以从该NtRaiseHardError系统服务中获取到弹出的异 常窗口事件。
[0033] 进一步的,拦截操作系统中的NtRaiseHardError系统服务,具体可以包括如下步 骤:
[0034] 通过系统服务描述符表挂钩(System Services Descriptor Table Hook,SSDT Hook)对操作系统中的NtRaiseHardError系统服务进行挂钩。
[0035] 其中,Hook可以用于监控消息在系统中的传递,并在这些消息到达最终的消息 处理过程前,处理某些特定的消息,Hook可以在windows实现对弹窗的中断,例如,在对 NtRaiseHardError系统服务进行hook后,一旦发生已hook事件,对该事件进行hook的动 态链接库的检测装置就会收到系统的通知,这时动态链接库的检测装置就能在第一时间对 该事件进行检测。
[0036] 102、判断异常窗口事件是否为动
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1