专利汇可以提供一种嵌入式系统软件注入热补丁的方法及系统专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种 嵌入式系统 软件 注入热 补丁 的方法及系统,涉及嵌入式 系统软件 补丁技术领域。该方法包括:在软件程序中预留若干二级跳转表预留区,在补丁文件中预留若干三级跳转表预留区;为每一个原函数分配最近的二级跳转指令存储空间,为每个补丁函数分配最近的三级跳转指令存储空间;生成每个原函数的二级跳转指令序列,并存储于对应的二级跳转指令存储空间内,生成每个补丁函数的三级跳转指令序列,并存储于对应的三级跳转指令序列空间内;最后,将每个原函数的首条指令 修改 为一级跳转指令。本发明不影响系统程序的运行,也无需修改编译器;且内存空间浪费少,补丁启用时间短。,下面是一种嵌入式系统软件注入热补丁的方法及系统专利的具体信息内容。
1.一种嵌入式系统软件注入热补丁的方法,其特征在于,包括以下步骤:
S1、在软件的程序编译阶段,在软件程序的各模块代码段中预留出若干二级跳转表预留区;在软件的补丁文件编译阶段,在补丁文件的各模块代码段中预留出若干三级跳转表预留区,转入步骤S2;
S2、将离每个原函数最近的二级跳转表预留区,作为该原函数的二级跳转指令存储空间;将离每个补丁函数最近的三级跳转表预留区,作为该补丁函数的三级跳转指令存储空间;
生成每个原函数的二级跳转指令序列,并存储于对应的二级跳转指令存储空间内;生成每个补丁函数的三级跳转指令序列,并存储于对应的三级跳转指令序列空间内,转入步骤S3;
S3、将每个原函数的首条指令修改为一级跳转指令;当系统运行每个原函数时,根据该原函数的一级跳转指令,由原函数跳转至对应二级跳转指令序列的首地址;根据该二级跳转指令序列,由该二级跳转指令序列跳转至对应三级跳转指令序列的首地址;根据该三级跳转指令序列,最终由三级跳转指令序列到函数补丁的跳转。
2.如权利要求1所述的嵌入式系统软件注入热补丁的方法,其特征在于,步骤S2包括以下步骤:
S201、查找并记录补丁文件中的补丁函数后,将补丁文件加载至系统中,转入步骤S202;
S202、记录所有补丁函数的地址;根据补丁函数名查找对应原函数的地址,转入步骤S203;
S203、在软件程序中查找二级跳转表预留区,记录二级跳转表预留区信息,转入步骤S204;
S204、在补丁文件中查找三级跳转表预留区,记录三级跳转表预留区信息,转入步骤S205;
S205、根据原函数的地址、二级跳转表预留区信息,将离每个原函数最近的二级跳转表预留区作为该原函数的二级跳转指令存储空间;根据补丁函数的地址、三级跳转表预留区信息,将离每个补丁函数最近的三级跳转表预留区作为该补丁函数的三级跳转指令存储空间,转入步骤S206;
S206、根据每个原函数的二级跳转指令存储空间的地址、以及对应的补丁函数的三级跳转指令存储空间的地址,生成每个原函数的二级跳转指令序列,并存储于对应的二级跳转指令存储空间内;根据补丁函数地址、以及该补丁函数的三级跳转指令存储空间的地址,生成每个补丁函数的三级跳转指令序列,并存储于对应的三级跳转指令序列空间内。
3.如权利要求2所述的嵌入式系统软件注入热补丁的方法,其特征在于:步骤S1中所述预留出若干二级跳转表预留区的同时,需为二级跳转表预留区定义一个标示符;所述预留出若干三级跳转表预留区的同时,需为三级跳转表预留区定义一个标示符;
步骤S201中所述将记录有补丁函数的补丁文件加载至系统中时,系统将自动为补丁文件的各模块生成对应的补丁文件模块名;
步骤S203具体包括以下步骤:获取并分析软件程序符号表中的一个符号信息;
若符号名为二级跳转表预留区标示符、且符号所在模块的模块名不是补丁文件模块名,则确定查找到二级跳转表预留区,记录该二级跳转表预留区地址、模块名;判断软件程序符号表是否全部查找完毕,若是,转到步骤S204,若否,重新执行步骤S203;
若符号名不为二级跳转表预留区标示符、或者符号所在模块的模块名是补丁文件模块名,则判断软件程序符号表是否全部查找完毕,若是,转到步骤S204,若否,重新执行步骤S203。
4.如权利要求3所述的嵌入式系统软件注入热补丁的方法,其特征在于,步骤S204具体包括以下步骤:获取并分析补丁文件符号表中的一个符号信息;
若符号名为三级跳转表预留区标示符、且符号所在模块的模块名是补丁文件模块名,则确定查找到三级跳转表预留区,记录该三级跳转表预留区地址、模块名;判断补丁文件符号表是否全部查找完毕,若是,转到步骤S205,若否,重新执行步骤S204;
若符号名不为三级跳转表预留区标示符、或者符号所在模块的模块名不是补丁文件模块名,则判断补丁文件符号表是否全部查找完毕,若是,转到步骤S205,若否,重新执行步骤S204。
5.如权利要求2所述的嵌入式系统软件注入热补丁的方法,其特征在于:步骤S201中所述补丁函数为符合补丁函数命名规则的函数,所述补丁函数命名规则为:补丁函数名=原函数名+补丁标示+用户自定义项。
6.如权利要求1所述的嵌入式系统软件注入热补丁的方法,其特征在于:步骤S2中所述二级跳转指令序列包括:将返回地址寄存器的值压入堆栈的指令、将跳转指令需要使用的寄存器压入堆栈的指令、将三级跳转指令序列的首地址赋值给寄存器的指令、跳转到三级跳转指令序列首地址的指令;所述三级跳转指令序列包括:还原二级跳转指令序列所使用的寄存器的值的指令、还原返回地址寄存器的值的指令、跳转至补丁函数首条地址的指令。
7.如权利要求1所述的嵌入式系统软件注入热补丁的方法,其特征在于:步骤S1中,通过修改软件程序的链接脚本,在软件程序的各模块代码段中预留出若干二级跳转表预留区;通过修改补丁文件的链接脚本,在补丁文件的各模块代码段中预留出若干三级跳转表预留区。
8.如权利要求1至7中任一项所述的嵌入式系统软件注入热补丁的方法,其特征在于:
步骤S3之后还包括热补丁去激活的步骤:将原函数的首条指令还原为未修改成一级跳转指令之前的原指令。
9.一种嵌入式系统软件注入热补丁的系统,其特征在于,包括跳转表预留区管理模块、热补丁安装模块和热补丁激活模块,其中:
所述跳转表预留区管理模块用于:在软件的程序编译阶段,在软件程序的各模块代码段中预留出若干二级跳转表预留区;在软件的补丁文件编译阶段,在补丁文件的各模块代码段中预留出若干三级跳转表预留区;向热补丁安装模块发送热补丁安装信号;
所述热补丁安装模块用于:收到热补丁安装信号后,将离每个原函数最近的二级跳转表预留区,作为该原函数的二级跳转指令存储空间;将离每个补丁函数最近的三级跳转表预留区,作为该补丁函数的三级跳转指令存储空间;
生成每个原函数的二级跳转指令序列,并存储于对应的二级跳转指令存储空间内;生成每个补丁函数的三级跳转指令序列,并存储于对应的三级跳转指令序列空间内;向热补丁激活模块发送热补丁激活信号;
所述热补丁激活模块用于:收到热补丁激活信号后,将每个原函数的首条指令修改为一级跳转指令;当系统运行每个原函数时,先根据该原函数的一级跳转指令,实现原函数到对应二级跳转指令序列的跳转;再根据该二级跳转指令序列,实现二级跳转指令序列到对应三级跳转指令序列的跳转;最后,根据该三级跳转指令序列,实现三级跳转指令序列到函数补丁的跳转。
10.如权利要求9所述的嵌入式系统软件注入热补丁的系统,其特征在于:该系统还包括热补丁去激活模块,所述热补丁去激活模块用于:将原函数的首条指令还原为未修改成一级跳转指令之前的原指令。
标题 | 发布/更新时间 | 阅读量 |
---|---|---|
基于AM软件的电气工程数据自动化处理系统 | 2020-05-08 | 316 |
一种分平面参数化数据链波形重构方法 | 2020-05-08 | 996 |
一种用于软件测试的生成污损二维码的方法 | 2020-05-08 | 561 |
一种恶意软件处理方法与装置 | 2020-05-08 | 511 |
一种基于PLMS、SVN和Jenkins进行软件项目全生命周期管理的方法 | 2020-05-08 | 615 |
一种基于可视化编程工具Dynamo的翼角圆椽建模 | 2020-05-08 | 52 |
软件产品应用方法及装置、存储介质及电子设备 | 2020-05-08 | 398 |
单节点多方加密 | 2020-05-11 | 517 |
一种基于nginx的流量采集分析方法 | 2020-05-08 | 157 |
一种串口通信的兼容控制系统及其方法 | 2020-05-08 | 844 |
高效检索全球专利专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。
我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。
专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。