[发明专利]补丁程序编译方法、程序修补方法及相关设备在审
申请号: | 202110794690.2 | 申请日: | 2021-07-14 |
公开(公告)号: | CN113504934A | 公开(公告)日: | 2021-10-15 |
发明(设计)人: | 刘长琦 | 申请(专利权)人: | 安徽聆思智能科技有限公司;上海聆芯科技有限公司 |
主分类号: | G06F8/658 | 分类号: | G06F8/658;G06F8/41 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 张影 |
地址: | 230601 安徽省合肥市经济技术开*** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 补丁 程序 编译 方法 修补 相关 设备 | ||
本申请提出一种补丁程序编译方法、程序修补方法及相关设备,该补丁程序编译方法包括:获取目标符号信息,所述目标符号信息中包含目标程序中的函数的名称信息和地址信息,和/或包含目标程序中的变量的名称信息和地址信息;对补丁程序进行编译处理,所述补丁程序中包含调用所述目标程序中的函数的程序代码,和/或包含引用所述目标程序中的变量的程序代码;根据所述目标符号信息,对编译后的所述补丁程序进行链接处理,使所述补丁程序链接至所述目标程序中的函数和/或变量。通过执行上述技术方案,可以使补丁程序调用原程序中的函数或引用原程序的变量,从而提升补丁编译效率以及提升软件程序修补效率。
技术领域
本申请涉及软件技术领域,尤其涉及一种补丁程序编译方法及装置、一种程序修补方法及装置、电子设备、存储介质。
背景技术
软件打补丁是常见的软件程序修补和升级方法。为便于软件程序的修补和升级,在软件程序内部预留补丁点,当需要对软件程序进行修补或升级时,通过补丁点调用补丁程序即可。
通常情况下,补丁程序是与待修补的软件程序相关的程序,补丁程序中的某些功能需要依托原软件程序中已有的函数或变量而实现,但是,原软件程序与补丁程序是分别独立编写并且各自分别进行编译链接得到的,补丁程序无法调用原软件程序中的函数,从而在补丁程序中不得不重新实现原软件程序中已有的函数或变量,由此导致补丁程序代码量较大,严重影响补丁程序编译效率以及软件程序修补效率。
发明内容
基于上述技术现状,本申请提出一种补丁程序编译方法及装置、一种程序修补方法及装置、电子设备、存储介质,可以使得补丁程序能够调用原程序中的函数或引用原程序中的变量,从而提升补丁编译效率以及提升软件程序修补效率。
为了实现上述目的,本申请具体提出如下技术方案:
一种补丁程序编译方法,包括:
获取目标符号信息,所述目标符号信息中包含目标程序中的函数的名称信息和地址信息,和/或包含目标程序中的变量的名称信息和地址信息;
对补丁程序进行编译处理,所述补丁程序中包含调用所述目标程序中的函数的程序代码,和/或包含引用所述目标程序中的变量的程序代码;
根据所述目标符号信息,对编译后的所述补丁程序进行链接处理,使所述补丁程序链接至所述目标程序中的函数和/或变量。
可选的,所述补丁程序中包括程序初始化函数,用于对所述补丁程序进行初始化,以及将所述补丁程序中的函数地址与所述目标程序中的待修补函数的函数指针变量绑定。
可选的,所述获取目标符号信息,包括:
从目标程序的编译结果中获取目标程序的符号文件,所述符号文件中至少包括所述目标程序中的各个函数和/或变量的名称,以及各个函数和/或变量的地址;
根据所述符号文件,生成目标符号信息。
可选的,根据所述目标符号信息,对编译后的所述补丁程序进行链接处理,包括:
利用所述目标符号信息,对所述补丁程序的链接脚本文件进行更新;
利用更新后的链接脚本文件,对编译后的所述补丁程序进行链接处理。
一种程序修补方法,包括:
当目标程序启动运行时,判断设定存储地址是否存储有效的目标补丁程序;
其中,所述目标补丁程序中包含调用所述目标程序中的函数的程序代码,和/或包含引用所述目标程序中的变量的程序代码,并且,所述目标补丁程序根据目标符号信息进行链接处理得到,所述目标符号信息中包含所述目标程序中的函数的名称信息和地址信息,和/或包含所述目标程序中的变量的名称信息和地址信息;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于安徽聆思智能科技有限公司;上海聆芯科技有限公司,未经安徽聆思智能科技有限公司;上海聆芯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110794690.2/2.html,转载请声明来源钻瓜专利网。