System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 消除无效依赖库的方法、装置、设备、介质和程序产品制造方法及图纸_技高网

消除无效依赖库的方法、装置、设备、介质和程序产品制造方法及图纸

技术编号:41740963 阅读:2 留言:0更新日期:2024-06-19 13:01
本申请涉及一种消除无效依赖库的方法、装置、计算机设备、存储介质和计算机程序产品,涉及计算机技术领域。本申请能够在无需修改源码且无需重编译的情况下,消除共享库不必要的外部依赖共享库,提出了一种普适性较高的消除无效依赖库的方案。该方法包括:获取待消除的无效依赖库对应的导出符号集合,以及可执行和可链接格式文件对应的导入符号集合;根据导出符号集合和导入符号集合,得到目标集合;目标集合为导出符号集合和导入符号集合的交集;将目标集合中的符号重写为目标符号,并将目标符号导入预设的标准函数库;修改目标集合中可执行和可链接格式文件的目标属性,以使待消除的无效依赖库从标准函数库中移除。

【技术实现步骤摘要】

本申请涉及计算机,特别是涉及一种消除无效依赖库的方法、装置、计算机设备、存储介质和计算机程序产品。


技术介绍

1、随着计算机开源技术的发展,elf(executable and linkable format,可执行和可链接格式)文件中可能会包含从未被内外部使用或不再被内外部使用的废弃函数,这些废弃函数由外部共享库提供且这些外部共享库的所有导出函数不被elf文件的其他有效函数所调用,则这些外部共享库可视为无效依赖库。

2、传统技术中,主要通过在 elf文件的源码中,删除指定依赖库所涉及的函数并重编译elf文件的方法来消除elf文件指定的无效依赖库。

3、然而,若要修改并重编译elf文件的源码,则需首先获取其源码;在elf文件为闭源软件的情况下,上述方法便无法实施,因此存在普适性较低的缺陷。


技术实现思路

1、基于此,有必要针对上述技术问题,提供一种消除无效依赖库的方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。

2、第一方面,本申请提供了一种消除无效依赖库的方法。所述方法包括:

3、获取待消除的无效依赖库对应的导出符号集合,以及可执行和可链接格式文件对应的导入符号集合;

4、根据所述导出符号集合和导入符号集合,得到目标集合;所述目标集合为所述导出符号集合和导入符号集合的交集;

5、将所述目标集合中的符号重写为目标符号,并将所述目标符号导入预设的标准函数库;

6、修改所述目标集合中可执行和可链接格式文件的目标属性,以使所述待消除的无效依赖库从所述标准函数库中移除。

7、在其中一个实施例中,所述获取待消除的无效依赖库对应的导出符号集合,以及可执行和可链接格式文件对应的导入符号集合,包括:

8、获取所述待消除的无效依赖库对应的第一符号表,以及所述可执行和可链接格式文件对应的第二符号表;遍历所述第一符号表,识别出所述第一符号表中的导出符号,得到所述导出符号集合;遍历所述第二符号表,识别出所述第二符号表中的导入符号,得到所述导入符号集合。

9、在其中一个实施例中,所述根据所述导出符号集合和导入符号集合,得到目标集合,包括:

10、对所述导出符号集合和导入符号集合进行排序比较;筛选出同时属于所述导出符号集合和导入符号集合的共有符号;根据所述共有符号,得到所述目标集合。

11、在其中一个实施例中,在修改所述目标集合中可执行和可链接格式文件的目标属性之前,还包括:

12、获取预设的命令行工具和所述命令行工具对应的修改命令和参数;根据所述修改命令和参数,确定待修改的目标属性和所述目标属性的修改方式;

13、所述修改所述目标集合中可执行和可链接格式文件的目标属性,包括:

14、利用所述命令行工具,根据所述修改命令和参数,对所述目标集合中可执行和可链接格式文件的目标属性进行修改。

15、在其中一个实施例中,所述根据所述修改命令和参数,确定待修改的目标属性和所述目标属性的修改方式,包括:

16、根据所述修改命令和参数,将所述可执行和可链接格式文件的依赖项属性作为所述目标属性;确定所述依赖项属性的修改方式为删除共享库依赖。

17、在其中一个实施例中,所述方法还包括:

18、在所述待消除的无效依赖库从所述标准函数库中成功移除的情况下,根据已消除的无效依赖库,生成成功移除提示信息;根据所述成功移除提示信息,对所述已消除的无效依赖库的历史操作记录进行更新。

19、第二方面,本申请还提供了一种消除无效依赖库的装置。所述装置包括:

20、集合获取模块,用于获取待消除的无效依赖库对应的导出符号集合,以及可执行和可链接格式文件对应的导入符号集合;

21、集合处理模块,用于根据所述导出符号集合和导入符号集合,得到目标集合;所述目标集合为所述导出符号集合和导入符号集合的交集;

22、符号重写模块,用于将所述目标集合中的符号重写为目标符号,并将所述目标符号导入预设的标准函数库;

23、属性修改模块,用于修改所述目标集合中可执行和可链接格式文件的目标属性,以使所述待消除的无效依赖库从所述标准函数库中移除。

24、第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

25、获取待消除的无效依赖库对应的导出符号集合,以及可执行和可链接格式文件对应的导入符号集合;根据所述导出符号集合和导入符号集合,得到目标集合;所述目标集合为所述导出符号集合和导入符号集合的交集;将所述目标集合中的符号重写为目标符号,并将所述目标符号导入预设的标准函数库;修改所述目标集合中可执行和可链接格式文件的目标属性,以使所述待消除的无效依赖库从所述标准函数库中移除。

26、第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

27、获取待消除的无效依赖库对应的导出符号集合,以及可执行和可链接格式文件对应的导入符号集合;根据所述导出符号集合和导入符号集合,得到目标集合;所述目标集合为所述导出符号集合和导入符号集合的交集;将所述目标集合中的符号重写为目标符号,并将所述目标符号导入预设的标准函数库;修改所述目标集合中可执行和可链接格式文件的目标属性,以使所述待消除的无效依赖库从所述标准函数库中移除。

28、第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:

29、获取待消除的无效依赖库对应的导出符号集合,以及可执行和可链接格式文件对应的导入符号集合;根据所述导出符号集合和导入符号集合,得到目标集合;所述目标集合为所述导出符号集合和导入符号集合的交集;将所述目标集合中的符号重写为目标符号,并将所述目标符号导入预设的标准函数库;修改所述目标集合中可执行和可链接格式文件的目标属性,以使所述待消除的无效依赖库从所述标准函数库中移除。

30、上述消除无效依赖库的方法、装置、计算机设备、存储介质和计算机程序产品,通过获取待消除的无效依赖库对应的导出符号集合,以及可执行和可链接格式文件对应的导入符号集合;根据导出符号集合和导入符号集合,得到目标集合;目标集合为导出符号集合和导入符号集合的交集;将目标集合中的符号重写为目标符号,并将目标符号导入预设的标准函数库;修改目标集合中可执行和可链接格式文件的目标属性,以使待消除的无效依赖库从标准函数库中移除。本方案可以在无需修改源码且无需重编译的情况下,消除共享库不必要的外部依赖共享库,避免了获取elf文件源码的前提过程,由此提出一种普适性较高的消除无效依赖库的方案;此外,使用该方案还可以降低可执行程序或共享库依赖共享库的数量,从而降低安装包(包含可本文档来自技高网...

【技术保护点】

1.一种消除无效依赖库的方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述获取待消除的无效依赖库对应的导出符号集合,以及可执行和可链接格式文件对应的导入符号集合,包括:

3.根据权利要求2所述的方法,其特征在于,所述根据所述导出符号集合和导入符号集合,得到目标集合,包括:

4.根据权利要求1所述的方法,其特征在于,在修改所述目标集合中可执行和可链接格式文件的目标属性之前,还包括:

5.根据权利要求4所述的方法,其特征在于,所述根据所述修改命令和参数,确定待修改的目标属性和所述目标属性的修改方式,包括:

6.根据权利要求1至5任意一项所述的方法,其特征在于,所述方法还包括:

7.一种消除无效依赖库的装置,其特征在于,所述装置包括:

8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。

9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。

10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。

...

【技术特征摘要】

1.一种消除无效依赖库的方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述获取待消除的无效依赖库对应的导出符号集合,以及可执行和可链接格式文件对应的导入符号集合,包括:

3.根据权利要求2所述的方法,其特征在于,所述根据所述导出符号集合和导入符号集合,得到目标集合,包括:

4.根据权利要求1所述的方法,其特征在于,在修改所述目标集合中可执行和可链接格式文件的目标属性之前,还包括:

5.根据权利要求4所述的方法,其特征在于,所述根据所述修改命令和参数,确定待修改的目标属性和所述目标属性的修改方式,包括:

...

【专利技术属性】
技术研发人员:马立珂娄永杰黄律棋蓝滨肖廷楷王子骏
申请(专利权)人:广州鼎甲计算机科技有限公司
类型:发明
国别省市:

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

1