一种异常函数查找方法及装置制造方法及图纸

技术编号:13836916 阅读:41 留言:0更新日期:2016-10-15 20:42
本发明专利技术实施例公开了一种异常函数查找方法及装置,其中,该方法包括:获取同一目录下的至少一个动态链接库DLL文件;分别加载所述至少一个DLL文件;获取所述至少一个DLL文件的关联数据,所述关联数据包括所述至少一个DLL文件对应的至少一个第一导出函数;根据所述至少一个第一导出函数,获取所述至少一个第一导出函数对应的函数地址;根据所述至少一个第一导出函数对应的函数地址,从所述至少一个第一导出函数中确定异常导出函数。实施本发明专利技术实施例,能够提高异常导出函数的查找效率。

【技术实现步骤摘要】

本专利技术涉及计算机
,尤其涉及一种异常函数查找方法及装置
技术介绍
随着计算机技术的不断发展,用户设备的系统版本越来越多,如Windows xp、Vista、Windows 7、Windows 10等等。在Windows系统中,许多应用程序并不是一个完整的可执行文件,而是被分割成一些相对独立的DLL(Dynamic Link Library,动态链接库)文件,放置于系统中。目前,每种系统都具有一些公共的DLL文件,如ntdll.dll、shell32.dll、KERNEL32.dll等文件,每个DLL文件都具有自身的导出函数,用于将DLL文件加载给进程调用。由于当前系统版本较多,不同系统对应的公共DLL文件可能不尽相同,一些新版本系统上新增的导出函数在旧版本系统上不存在,如果在旧版本系统上直接或间接使用新版本系统上的函数时,就会导致程序崩溃。然而,当导致程序崩溃的异常导出函数过多时,通过一个个记录并查找出所有的异常导出函数将需要花费大量的时间,从而使得查找效率低下。
技术实现思路
本专利技术实施例公开了一种异常函数查找方法及装置,能够提高异常导出函数的查找效率。本专利技术实施例第一方面公开了一种异常函数查找方法,包括:获取至少一个动态链接库DLL文件,所述至少一个DLL文件位于同一目录下;分别加载所述至少一个DLL文件;获取所述至少一个DLL文件的关联数据,所述关联数据包括所述至少一个DLL文件对应的至少一个第一导出函数;根据所述至少一个第一导出函数,获取所述至少一个第一导出函数对应的函数地址;根据所述至少一个第一导出函数对应的函数地址,从所述至少一个第一导出函数中确定异常导出函数。结合本专利技术实施例第一方面,在本专利技术实施例第一方面的第一种可能的实施方式中,所述根据所述至少一个第一导出函数对应的函数地址,从所述至少一个第一导出函数中确定异常导出函数,包括:判断所述至少一个第一导出函数对应的函数地址中是否存在空地址;当所述至少一个第一导出函数对应的函数地址中存在空地址时,将空地址所对应的导出函数确定为异常导出函数。结合本专利技术实施例第一方面,在本专利技术实施例第一方面的第二种可能的实施方式中,所述方法还包括:输出提示消息,所述提示消息用于展示所述异常导出函数。结合本专利技术实施例第一方面或第一方面的第一种或第二种可能的实施方式,在本专利技术实施例第一方面的第三种可能的实施方式中,所述根据所述至少一个第一导出函数,获取所述至少一个第一导出函数对应的函数地址,包括:根据所述至少一个第一导出函数的名称,利用预设算法获取所述至少一个第一导出函数对应的函数地址。结合本专利技术实施例第一方面或第一方面的第一种或第二种可能的实施方式,在本专利技术实施例第一方面的第四种可能的实施方式中,所述关联数据还包括与所述至少一个DLL文件相关联的目标DLL文件对应的至少一个第二导出函数,所述方法还包括:根据所述至少一个第二导出函数,获取所述至少一个第二导出函数对应的函数地址;根据所述至少一个第二导出函数对应的函数地址,从所述至少一个第二导出函数中确定异常导出函数。本专利技术实施例第二方面公开了一种异常函数查找装置,包括:第一获取单元,用于获取至少一个动态链接库DLL文件,所述装置的可执行文件与所述至少一个DLL文件位于同一目录下;加载单元,用于分别加载所述至少一个DLL文件;第二获取单元,用于获取所述至少一个DLL文件的关联数据,所述关联数据包括所述至少一个DLL文件对应的至少一个第一导出函数;第三获取单元,用于根据所述至少一个第一导出函数,获取所述至少一个第一导出函数对应的函数地址;确定单元,用于根据所述至少一个第一导出函数对应的函数地址,从所述至少一个第一导出函数中确定异常导出函数。结合本专利技术实施例第二方面,在本专利技术实施例第二方面的第一种可能的实施方式中,所述确定单元包括:判断子单元,用于判断所述至少一个第一导出函数对应的函数地址中是否存在空地址;确定子单元,用于当所述判断子单元判断出所述至少一个第一导出函数对应的函数地址中存在空地址时,将空地址所对应的导出函数确定为异常导出函数。结合本专利技术实施例第二方面,在本专利技术实施例第二方面的第二种可能的实施方式中,所述装置还包括:输出单元,用于输出提示消息,所述提示消息用于展示所述异常导出函数。结合本专利技术实施例第二方面或第二方面的第一种或第二种可能的实施方式,在本专利技术实施例第二方面的第三种可能的实施方式中,所述第三获取单元具体用于根据所述至少一个第一导出函数的名称,利用预设算法获取所述至少一个第一导出函数对应的函数地址。结合本专利技术实施例第二方面或第二方面的第一种或第二种可能的实施方式,在本专利技术实施例第二方面的第四种可能的实施方式中,所述关联数据还包括与所述至少一个DLL文件相关联的目标DLL文件对应的至少一个第二导出函数;所述第三获取单元,还用于根据所述至少一个第二导出函数,获取所述至少一个第二导出函数对应的函数地址;所述确定单元,还用于根据所述至少一个第二导出函数对应的函数地址,从所述至少一个第二导出函数中确定异常导出函数。本专利技术实施例中,可以获取在同一目录下的至少一个动态链接库DLL文件,并分别加载上述至少一个DLL文件,可以获取上述至少一个DLL文件的关联数据,该关联数据可以包括上述至少一个DLL文件对应的至少一个第一导出函数,并根据上述至少一个第一导出函数获取对应的函数地址,可以根据获得的上述
至少一个第一导出函数对应的函数地址,从上述至少一个第一导出函数中确定异常导出函数。可见,实施本专利技术实施例,能够一次性获取多个DLL文件使用的异常导出函数,从而有效地提高异常导出函数的查找效率。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例公开的一种异常函数查找方法的流程示意图;图2是本专利技术实施例公开的另一种异常函数查找方法的流程示意图;图3是本专利技术实施例公开的一种DLL文件加载运行的界面示意图;图4是本专利技术实施例公开的一种异常函数查找装置的结构示意图;图5是本专利技术实施例公开的另一种异常函数查找装置的结构示意图;图6是本专利技术实施例公开的又一种异常函数查找装置的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例公开了一种异常函数查找方法及装置,能够一次性获取多个DLL文件的异常导出函数,从而有效地提高异常导出函数的查找效率。以下分别进行详细说明。请参阅图1,图1是本专利技术实施例公开的一种异常函数查找方法的流程示意图。如图1所示,该异常函数查找方法可以包括以下步骤:101、获取至少一个动态链接库DLL文件。本专利技术实施例中,异常函数查找装置可以同时获取多个DLL文件,且这多个DLL文件可以位于同一存储目录下。具体地,异常函数查找装置可以通过调用FindFirstF本文档来自技高网
...

【技术保护点】
一种异常函数查找方法,其特征在于,包括:获取至少一个动态链接库DLL文件,所述至少一个DLL文件位于同一目录下;分别加载所述至少一个DLL文件;获取所述至少一个DLL文件的关联数据,所述关联数据包括所述至少一个DLL文件对应的至少一个第一导出函数;根据所述至少一个第一导出函数,获取所述至少一个第一导出函数对应的函数地址;根据所述至少一个第一导出函数对应的函数地址,从所述至少一个第一导出函数中确定异常导出函数。

【技术特征摘要】
1.一种异常函数查找方法,其特征在于,包括:获取至少一个动态链接库DLL文件,所述至少一个DLL文件位于同一目录下;分别加载所述至少一个DLL文件;获取所述至少一个DLL文件的关联数据,所述关联数据包括所述至少一个DLL文件对应的至少一个第一导出函数;根据所述至少一个第一导出函数,获取所述至少一个第一导出函数对应的函数地址;根据所述至少一个第一导出函数对应的函数地址,从所述至少一个第一导出函数中确定异常导出函数。2.根据权利要求1所述的方法,其特征在于,所述根据所述至少一个第一导出函数对应的函数地址,从所述至少一个第一导出函数中确定异常导出函数,包括:判断所述至少一个第一导出函数对应的函数地址中是否存在空地址;当所述至少一个第一导出函数对应的函数地址中存在空地址时,将空地址所对应的导出函数确定为异常导出函数。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:输出提示消息,所述提示消息用于展示所述异常导出函数。4.根据权利要求1-3中任一项所述的方法,其特征在于,所述根据所述至少一个第一导出函数,获取所述至少一个第一导出函数对应的函数地址,包括:根据所述至少一个第一导出函数的名称,利用预设算法获取所述至少一个第一导出函数对应的函数地址。5.根据权利要求1-3中任一项所述的方法,其特征在于,所述关联数据还包括与所述至少一个DLL文件相关联的目标DLL文件对应的至少一个第二导出
\t函数,所述方法还包括:根据所述至少一个第二导出函数,获取所述至少一个第二导出函数对应的函数地址;根据所述至少一个第二导出函数对应的函数地址,从所述至少一个第二导出函数中确定异常导出函数。6.一种异常函数查找装...

【专利技术属性】
技术研发人员:李文靖
申请(专利权)人:北京金山安全软件有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1