加载动态库的方法、系统、设备、存储介质及程序产品与流程

文档序号:33737773发布日期:2023-04-06 08:38阅读:29来源:国知局
加载动态库的方法、系统、设备、存储介质及程序产品与流程

本技术涉及计算机,特别是涉及一种加载动态库的方法、系统、设备、存储介质及程序产品。


背景技术:

1、dll(dynamic link library,动态链接库)又称作动态库,是实现共享函数库概念的一种方式,其可以使进程调用不属于该进程的可执行代码的函数。

2、动态库作为一种常用的代码共享手段,在bmc(baseboard managementcontroller,基板管理控制器)中广泛使用。bmc在加载动态库时,通常会以lib*.so等二进制源文件方式存放动态库,使得存放在bmc中的动态库很容易被导出并进行反编译,且在将动态库放入内存并使用应用程序进行调用的过程中,内存中的动态库也存在被篡改的风险,以致应用程序可能调用到被篡改后的动态库,存在较大的安全隐患。


技术实现思路

1、本技术实施例的目的是提供一种加载动态库的方法、系统、设备、存储介质及程序产品,可以降低存放在bmc中的动态库被反编译、以及应用程序调用到被篡改后的动态库的风险。

2、为解决上述技术问题,第一方面,本技术实施例提供一种加载动态库的方法,应用于基板管理控制器bmc,包括:

3、从计算机设备中获取目标压缩动态库,并对所述目标压缩动态库进行存储,所述目标压缩动态库是所述计算机设备根据自定义压缩算法,对目标动态库进行压缩操作而生成的;

4、在所述bmc中的应用程序调用所述目标动态库时,根据所述自定义压缩算法所匹配的自定义解压算法,利用自定义动态库加载函数,对所述目标压缩动态库进行解压操作,得到所述目标动态库;

5、将所述目标动态库放入所述bmc的内存,利用所述自定义动态库加载函数,持续监测所述bmc的内存中的目标动态库是否被篡改,所述自定义动态库加载函数是对所述系统预置动态库加载函数进行了动态库解压能力配置和内存监控能力配置后得到的;

6、在所述bmc的内存中的目标动态库被篡改的情况下,对所述bmc所存储的目标压缩动态库重新进行解压操作,得到新的目标动态库,通过所述bmc中的应用程序调用所述新的目标动态库;

7、在所述bmc的内存中的目标动态库未被篡改的情况下,通过所述bmc中的应用程序调用所述bmc的内存中的目标动态库。

8、可选地,所述持续监测所述bmc的内存中的目标动态库是否被篡改,包括:

9、利用所述自定义动态库加载函数,持续监测是否存在对所述目标动态库所对应内存区域的数据修改操作;

10、响应于存在对所述目标动态库所对应内存区域的数据修改操作,则判定所述bmc的内存中的目标动态库被篡改;

11、响应于不存在对所述目标动态库所对应内存区域的数据修改操作,则判定所述bmc的内存中的目标动态库未被篡改。

12、可选地,所述通过所述bmc中的应用程序调用所述bmc的内存中的目标动态库,包括:

13、利用自定义接口调用函数,判断所述bmc的内存中的目标函数是否被篡改,所述目标函数为所述bmc中的应用程序所需调用的目标动态库中的至少一个函数,所述自定义接口调用函数是对所述系统预置接口调用函数进行了内存监控能力配置后得到的;

14、在所述目标函数未被篡改的情况下,利用所述自定义接口调用函数,在所述应用程序中调用所述bmc的内存中的目标函数。

15、可选地,所述自定义接口调用函数是对系统预置的dlsym接口进行了内存监控能力配置后得到的。

16、可选地,所述从计算机设备中获取目标压缩动态库,包括:

17、从所述计算机设备中获取目标加密动态库,所述目标加密动态库是所述计算机设备根据加密算法,对所述目标压缩动态库进行加密操作而生成的;

18、根据所述加密算法所匹配的解密算法,利用所述自定义动态库加载函数,对所述目标加密动态库进行解密操作,得到所述目标压缩动态库,所述自定义动态库加载函数是对系统预置动态库加载函数进行了动态库解压能力配置、内存监控能力配置和动态库解密能力配置后得到的。

19、可选地,所述对所述目标压缩动态库进行解压操作之前,还包括:

20、利用所述自定义动态库加载函数,对所述目标压缩动态库进行动态库验证,所述动态库验证包括动态库完整性验证和动态库正确性验证中的至少一项,所述自定义动态库加载函数是对系统预置动态库加载函数进行了动态库解压能力配置、内存监控能力配置、动态库验证能力配置和动态库解密能力配置后得到的;

21、所述对所述目标压缩动态库进行解压操作,包括:

22、对通过动态库验证的目标压缩动态库进行解压操作。

23、可选地,所述自定义动态库加载函数是对系统预置的dlopen接口进行了动态库解压能力配置和内存监控能力配置后得到的。

24、第二方面,本技术实施例还提供了一种加载动态库的系统,应用于基板管理控制器bmc,包括:

25、获取模块,用于从计算机设备中获取目标压缩动态库,并对所述目标压缩动态库进行存储,所述目标压缩动态库是所述计算机设备根据自定义压缩算法,对目标动态库进行压缩操作而生成的;

26、解压模块,用于在所述bmc中的应用程序调用所述目标动态库时,根据所述自定义压缩算法所匹配的自定义解压算法,利用自定义动态库加载函数,对所述目标压缩动态库进行解压操作,得到所述目标动态库;

27、第一内存监控模块,用于将所述目标动态库放入所述bmc的内存利用所述自定义动态库加载函数,持续监测所述bmc的内存中的目标动态库是否被篡改,其中,所述自定义动态库加载函数是对所述系统预置动态库加载函数进行了动态库解压能力配置和内存监控能力配置后得到的;

28、第一响应模块,用于在所述bmc的内存中的目标动态库被篡改的情况下,对所述bmc所存储的目标压缩动态库重新进行解压操作,得到新的目标动态库,通过所述bmc中的应用程序调用所述新的目标动态库;以及用于在所述bmc的内存中的目标动态库未被篡改的情况下,通过所述bmc中的应用程序调用所述bmc的内存中的目标动态库。

29、第三方面,本技术实施例还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上的计算机程序,所述处理器执行所述计算机程序以实现如第一方面所述的加载动态库的方法。

30、第四方面,本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序/指令,该计算机程序/指令被处理器执行时实现如第一方面所述的加载动态库的方法。

31、第五方面,本技术实施例还提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现如第一方面所述的加载动态库的方法。

32、由上述技术方案可以看出,通过为bmc的系统预置动态库加载函数进行动态库解压能力和内存监控能力的配置,使得bmc中的应用程序具备对压缩后动态库进行调用的能力、以及对放入内存的动态库进行篡改风险监测的能力,从而能够将基于二进制源文件结构的bmc动态库加载方式转换为基于压缩文件结构的bmc动态库加载方式,且bmc通过自定义压缩文件(即目标压缩动态库)对目标动态库进行存储,能够避免存储在bmc中的目标压缩动态库被通用解压算法破解,从而可以降低存放在bmc中的目标动态库被反编译的风险,并在应用程序调用目标压缩动态库的过程中,对解压后放入内存的动态库设置持续的篡改风险监测,可以降低应用程序调用到被篡改过的目标动态库的风险,从而通过为bmc的系统预置动态库加载函数配置自定义解压能力和篡改风险监测能力,提高bmc加载动态库的安全性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1