加载动态链接库的方法、装置、电子设备及存储介质制造方法及图纸

技术编号:23891223 阅读:30 留言:0更新日期:2020-04-22 06:33
本申请公开了加载动态链接库的方法、装置、电子设备及存储介质,所述方法首先通过目标函数获取动态库信息,然后根据预设信息列表对动态库信息进行验证,如果根据预设信息列表对动态库信息验证通过,则允许应用程序加载相应的动态库;如果根据预设信息列表对动态库信息验证不通过,则拒绝应用程序加载相应的动态库。本申请方法可以实现对动态库信息的验证,并只允许应用程序加载验证通过的动态库,因此可以防止非法的动态库代码加载到应用程序中,保证应用程序运行的稳定性和安全性。

Methods, devices, electronic devices and storage media for loading DLL

【技术实现步骤摘要】
加载动态链接库的方法、装置、电子设备及存储介质
本申请涉及计算机
,尤其涉及一种加载动态链接库的方法、装置、电子设备及存储介质。
技术介绍
动态链接库(DynamicLinkLibrary,DLL)简称动态库,是一个包含可由多个应用程序共同使用的代码和数据的库。例如,在Windows操作系统中,Comdlg32.dll执行与对话框有关的函数,每个程序都可以使用该DLL中包含的功能来实现有关对话框的操作,因此有助于避免代码重用,并促进内存的有效使用。具体实现时,当应用程序启动或者运行时,应用程序根据需要允许动态库中的代码加载到应用程序指定的地址空间,并通过运行加载的动态库代码实现相应功能。然而,如果非法的动态库代码加载到应用程序中,则会造成应用程序运行不稳定,甚至崩溃。
技术实现思路
本申请提供一种加载动态链接库的方法、装置、电子设备及存储介质,以防止非法的动态库代码加载到应用程序中,保证应用程序运行的稳定性和安全性。第一方面,本申请提供一种加载动态链接库的方法,所述方法包括:通过目标函数获取动态库信息,所述目标函数在应用程序启动或者运行时可被调用以获取所述动态库信息,所述动态库信息用于表征应用程序加载的动态库;根据预设信息列表对所述动态库信息进行验证;如果根据所述预设信息列表对所述动态库信息验证通过,则允许应用程序加载所述动态库;如果根据所述预设信息列表对所述动态库信息验证不通过,则拒绝应用程序加载所述动态库。进一步,所述目标函数包括第一目标函数和第二目标函数,所述通过目标函数获取动态库信息,包括:调用所述第一目标函数,以通过所述第一目标函数获取动态库数量;根据所述动态库数量调用所述第二目标函数,以通过所述第二目标函数获取与所述动态库数量相符的动态库信息。进一步,所述通过目标函数获取动态库信息,包括:监测所述目标函数是否被调用;当监测到所述目标函数被调用时,获取所述目标函数的返回结果,所述返回结果包括所述动态库信息。进一步,所述预设信息列表包括至少一项第一预设动态库信息,所述第一预设动态库信息用于表征允许所述应用程序加载的动态库;所述根据预设信息列表对所述动态库信息进行验证,包括:判断所述预设信息列表中是否存在与所述动态库信息一致的第一预设动态库信息;如果所述预设信息列表中存在与所述动态库信息一致的第一预设动态库信息,则对所述动态库信息验证通过;如果所述预设信息列表中不存在与所述动态库信息一致的第一预设动态库信息,则对所述动态库信息验证不通过。进一步,所述预设信息列表包括至少一项第二预设动态库信息,所述第二预设动态库信息用于表征不允许所述应用程序加载的动态库;所述根据预设信息列表对所述动态库信息进行验证,包括:判断所述预设信息列表中是否存在与所述动态库信息一致的第二预设动态库信息;如果所述预设信息列表中存在与所述动态库信息一致的第二预设动态库信息,则对所述动态库信息验证不通过;如果所述预设信息列表中不存在与所述动态库信息一致的第二预设动态库信息,则对所述动态库信息验证通过。进一步,所述动态库信息至少包括动态库标识。进一步,所述方法还包括:接收服务器下发的列表更新信息;根据所述列表更新信息对所述预设信息列表进行更新。进一步,如果根据所述预设信息列表对所述动态库信息验证不通过,所述方法还包括:将所述验证通过的动态库信息发送给服务器,以使服务器对所述动态库信息表征的动态库进行封禁处理。第二方面,本申请还提供一种加载动态链接库的装置,所述装置包括:获取模块,用于通过目标函数获取动态库信息,所述目标函数在应用程序启动或者运行时可被调用以获取所述动态库信息,所述动态库信息用于表征应用程序加载的动态库;验证模块,用于根据预设信息列表对所述动态库信息进行验证;控制模块,用于如果根据所述预设信息列表对所述动态库信息验证通过,则允许应用程序加载所述动态库;如果根据所述预设信息列表对所述动态库信息验证不通过,则拒绝应用程序加载所述动态库。进一步,所述目标函数包括第一目标函数和第二目标函数,所述获取模块,包括:第一调用单元,用于调用所述第一目标函数,以通过所述第一目标函数获取动态库数量;第二调用单元,用于根据所述动态库数量调用所述第二目标函数,以通过所述第二目标函数获取与所述动态库数量相符的动态库信息。进一步,所述获取模块,包括:监测单元,用于监测所述目标函数是否被调用;获取单元,用于当监测到所述目标函数被调用时,获取所述目标函数的返回结果,所述返回结果包括所述动态库信息。进一步,所述预设信息列表包括至少一项第一预设动态库信息,所述第一预设动态库信息用于表征允许所述应用程序加载的动态库;所述验证模块,具体用于:判断所述预设信息列表中是否存在与所述动态库信息一致的第一预设动态库信息;如果所述预设信息列表中存在与所述动态库信息一致的第一预设动态库信息,则对所述动态库信息验证通过;如果所述预设信息列表中不存在与所述动态库信息一致的第一预设动态库信息,则对所述动态库信息验证不通过。进一步,所述预设信息列表包括至少一项第二预设动态库信息,所述第二预设动态库信息用于表征不允许所述应用程序加载的动态库;所述验证模块,具体用于:判断所述预设信息列表中是否存在与所述动态库信息一致的第二预设动态库信息;如果所述预设信息列表中存在与所述动态库信息一致的第二预设动态库信息,则对所述动态库信息验证不通过;如果所述预设信息列表中不存在与所述动态库信息一致的第二预设动态库信息,则对所述动态库信息验证通过。进一步,所述动态库信息至少包括动态库标识。进一步,所述装置还包括:接收模块,用于接收服务器下发的列表更新信息;更新模块,用于根据所述列表更新信息对所述预设信息列表进行更新。进一步,所述装置还包括:发送模块,用于如果根据所述预设信息列表对所述动态库信息验证不通过,将所述验证通过的动态库信息发送给服务器,以使服务器对所述动态库信息表征的动态库进行封禁处理。第三方面,本申请还提供一种电子设备,包括:存储器,用于存储程序指令;处理器,用于调用并执行所述存储器中的程序指令,以实现第一方面任一项所述的方法。第四方面,本申请还提供一种存储介质,其特征在于,所述存储介质中存储有计算机程序,当第二方面任一项所述的装置的至少一个处理器执行所述计算机程序时,所述装置执行第一方面任一项所述的方法。由以上技术方案可知,本申请实施例提供一种加载动态链接库的方法、装置、电子设备及存储介质,所述方法首先通过目标函数获取动态库信息,然后根据预设信息列表对动态库信息进行验证,如果根据预设信息列表对动态库信息验证通过,则允许应用程序加载相应的动态库;如果根据预设信息列表对动本文档来自技高网...

【技术保护点】
1.一种加载动态链接库的方法,其特征在于,所述方法包括:/n通过目标函数获取动态库信息,所述目标函数在应用程序启动或者运行时可被调用以获取所述动态库信息,所述动态库信息用于表征应用程序加载的动态库;/n根据预设信息列表对所述动态库信息进行验证;/n如果根据所述预设信息列表对所述动态库信息验证通过,则允许应用程序加载所述动态库;/n如果根据所述预设信息列表对所述动态库信息验证不通过,则拒绝应用程序加载所述动态库。/n

【技术特征摘要】
1.一种加载动态链接库的方法,其特征在于,所述方法包括:
通过目标函数获取动态库信息,所述目标函数在应用程序启动或者运行时可被调用以获取所述动态库信息,所述动态库信息用于表征应用程序加载的动态库;
根据预设信息列表对所述动态库信息进行验证;
如果根据所述预设信息列表对所述动态库信息验证通过,则允许应用程序加载所述动态库;
如果根据所述预设信息列表对所述动态库信息验证不通过,则拒绝应用程序加载所述动态库。


2.根据权利要求1所述的方法,其特征在于,所述目标函数包括第一目标函数和第二目标函数,所述通过目标函数获取动态库信息,包括:
调用所述第一目标函数,以通过所述第一目标函数获取动态库数量;
根据所述动态库数量调用所述第二目标函数,以通过所述第二目标函数获取与所述动态库数量相符的动态库信息。


3.根据权利要求1所述的方法,其特征在于,所述通过目标函数获取动态库信息,包括:
监测所述目标函数是否被调用;
当监测到所述目标函数被调用时,获取所述目标函数的返回结果,所述返回结果包括所述动态库信息。


4.根据权利要求1所述的方法,其特征在于,所述预设信息列表包括至少一项第一预设动态库信息,所述第一预设动态库信息用于表征允许所述应用程序加载的动态库;
所述根据预设信息列表对所述动态库信息进行验证,包括:
判断所述预设信息列表中是否存在与所述动态库信息一致的第一预设动态库信息;
如果所述预设信息列表中存在与所述动态库信息一致的第一预设动态库信息,则对所述动态库信息验证通过;
如果所述预设信息列表中不存在与所述动态库信息一致的第一预设动态库信息,则对所述动态库信息验证不通过。


5.根据权利要求1所述的方法,其特征在于,所述预设信息列表包括至少一项第二预设动态库信息,所述第二预设动态库信息用于表征不允许所述应用程序加载的动态库;
所述根据预设信息列表对所述动态库信息进行验证,包括:
判断所述预设信息列表中是否存在与所述动态库信息一致的第二预设动态库信息;
如果所述预设信息列表中存在与所述动态库信息一致的第二预设动态库信息,则对所述动态库信息验证不通过;
如果所述预设信息列表中不存在与所述动态库信息一致的第二预设动态库信息,则对所述动态库信息验证通过。


6.根据权利要求1-5任一项所述的方法,其特征在于,所述动态库信息至少包括动态库标识。


7.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
接收服务器下发的列表更新信息;
根据所述列表更新信息对所述预设信息列表进行更新。


8.根据权利要求1-5任一项所述的方法,其特征在于,如果根据所述预设信息列表对所述动态库信息验证不通过,所述方法还包括:
将所述验证通过的动态库信息发送给服务器,以使服务器对所述动态库信息表征的动态库进行封禁处理。


9.一种加载动态链接库的装置,其特征在于,所述装置包括:
获取模块,用于通过目标函数获取动态库信息,所述目标函数在应用程序启动或者运行时可被调用以获取所述动态库信息,所述动态库信息用于表征应用程序...

【专利技术属性】
技术研发人员:薛勇彭飞邓竹立
申请(专利权)人:五八同城信息技术有限公司
类型:发明
国别省市:天津;12

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

1