全网唯一标准王
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210655466.X (22)申请日 2022.06.10 (71)申请人 展讯通信 (深圳) 有限公司 地址 518057 广东省深圳市南 山区粤海街 道高新区社区科技南路18号深圳湾 科 技生态园12栋B2801 (72)发明人 张火明  (74)专利代理 机构 北京同立钧成知识产权代理 有限公司 1 1205 专利代理师 罗茜 臧建明 (51)Int.Cl. G06F 9/445(2018.01) G06F 8/53(2018.01) (54)发明名称 全局变量的重 定位方法和装置 (57)摘要 本发明提供一种全局变量的重定位方法和 装置, 该方法包括: 对全局变量的访问依赖重定 位寄存器重定位的第一可执行程序进行处理, 得 到不依赖重定位寄存器重定位的第二可执行程 序; 确定第一可执行程序中各个全局变量的相对 地址, 并根据第二可执行程序获取第二可执行程 序中已初始化变量的首地址的第一加载地址, 以 及每个全局变量的相对地址, 确定每个全局变量 的实际加载地址, 并将每个相对地址修改为每个 相对地址对应的实际加载地址。 本发明中, 通过 对第一可执行程序进行处理, 得到不依赖重定位 寄存器重定位全局变量的第二可执行程序, 并基 于第二可执行程序实现各个全局变量的重定位, 实现了多个全局变量的动态加载需求。 权利要求书2页 说明书9页 附图5页 CN 114895986 A 2022.08.12 CN 114895986 A 1.一种全局变量的重 定位方法, 其特 征在于, 包括: 获取第一可执行程序, 所述第 一可执行程序对全局变量的访问依赖重定位寄存器的重 定位; 对所述第一可执行程序进行处理得到第 二可执行程序, 所述第 二可执行程序对全局变 量的访问不依赖 重定位寄存器的重 定位; 确定所述第 一可执行程序中各个全局变量的相对地址, 并根据 所述第二可执行程序获 取所述第二可 执行程序中已初始化变量的首地址的第一加载地址; 根据所述第 一加载地址以及每个所述全局变量的相对地址, 确定每个所述全局变量的 实际加载地址, 并将每 个所述相对地址修改为每 个所述相对地址对应的实际加载地址 。 2.根据权利要求1所述的全局变量的重定位方法, 其特征在于, 所述对所述第 一可执行 程序进行处 理得到第二可 执行程序的步骤 包括: 生成所述第一可 执行程序对应的反汇编文件; 扫描所述反汇编文件确定所述第 一可执行程序中的各个第 一指令, 所述第 一指令是所 述重定位寄存器的重 定位指令; 将各个所述第 一指令替换为第 二指令得到所述第 二可执行程序, 所述第 二指令是无效 指令。 3.根据权利要求2所述的全局变量的重定位方法, 其特征在于, 所述确定所述第 一可执 行程序中各个全局变量的相对地址的步骤 包括: 根据所述反汇编文件获取每 个所述第一指令对应的第一寄存器; 在所述反汇编文件中确定每个所述第一指令对应的目标指令, 其中, 所述第一指令对 应的目标指令是向所述第一指令对应的第一寄存器赋值的指令; 根据每个所述目标指令获取 各个所述全局变量的相对地址 。 4.根据权利要求2所述的全局变量的重定位方法, 其特征在于, 所述根据 所述第二可执 行程序获取 所述第二可 执行程序中已初始化变量的首地址的第一加载地址的步骤 包括: 将各个所述相对地址添加至所述第二可 执行程序的头 部位置得到第三可 执行程序; 获取所述第 二可执行程序中已初始化变量的首地址, 并加载所述第 三可执行程序 得到 所述首地址的第一加载地址 。 5.根据权利要求4所述的全局变量的重定位方法, 其特征在于, 所述将各个所述相对地 址添加至所述第二可 执行程序的头 部位置得到第三可 执行程序的步骤 包括: 在各个所述相对地址中去除重复的相对地址; 将去除重复相对地址的各个所述相对地址, 添加至所述第二可执行程序的头部位置, 得到第三可 执行程序。 6.根据权利要求4所述的全局变量的重定位方法, 其特征在于, 所述将各个所述相对地 址添加至所述第二可 执行程序的头 部位置得到第三可 执行程序的步骤 包括: 将各个所述相对地址添加至所述第 二可执行程序的头部位置, 并在添加所述相对地址 的所述第二可 执行程序的尾部位置添加预设字符, 得到所述第三可 执行程序。 7.根据权利要求1 ‑6任一项所述的全局变量的重定位方法, 其特征在于, 所述获取第一 可执行程序的步骤 包括: 编译初始可 执行程序;权 利 要 求 书 1/2 页 2 CN 114895986 A 2将所述初始可执行程序与 所述重定位寄存器进行连接, 并在将所述初始可执行程序与 所述重定位寄存器的编译选项设置为 位置无关, 得到所述第一可 执行程序。 8.一种全局变量的重 定位装置, 其特 征在于, 包括: 获取模块, 用于获取第一可执行程序, 所述第一可执行程序对全局变量的访 问依赖重 定位寄存器的重 定位; 处理模块, 用于对所述第一可执行程序进行处理得到第二可执行程序, 所述第二可执 行程序对 全局变量的访问不依赖 重定位寄存器的重 定位; 确定模块, 用于确定所述第一可执行程序中各个全局变量的相对地址, 并根据所述第 二可执行程序获取 所述第二可 执行程序中已初始化变量的首地址的第一加载地址; 所述确定模块, 还用于根据所述第一加载地址以及每个所述全局变量的相对地址, 确 定每个所述全局变量的实际加载地址, 并将 每个所述相对地址修改为每个所述相对地址对 应的实际加载地址 。 9.一种全局变量的重 定位设备, 其特 征在于, 包括: 存 储器和处 理器; 所述存储器存储计算机执 行指令; 所述处理器执行所述存储器存储的计算机执行指令, 使得所述处理器执行如权利要求 1至7任一项所述的全局变量的重 定位方法。 10.一种计算机可读存储介质, 其特征在于, 所述计算机可读存储介质中存储有计算机 执行指令, 所述计算机执行指 令被处理器执行时用于实现如权利要求 1至7任一项 所述的全 局变量的重 定位方法。 11.一种计算机程序产品, 包括计算机程序, 其特征在于, 所述计算机程序被处理器执 行时, 实现权利要求1至7任一项所述的全局变量的重 定位方法。权 利 要 求 书 2/2 页 3 CN 114895986 A 3

.PDF文档 专利 全局变量的重定位方法和装置

文档预览
中文文档 17 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共17页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 全局变量的重定位方法和装置 第 1 页 专利 全局变量的重定位方法和装置 第 2 页 专利 全局变量的重定位方法和装置 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 00:03:05上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。