发明名称 一种嵌入式系统软件注入热补丁的方法及系统
摘要 本发明公开了一种嵌入式系统软件注入热补丁的方法及系统,涉及嵌入式系统软件补丁技术领域。该方法包括:在软件程序中预留若干二级跳转表预留区,在补丁文件中预留若干三级跳转表预留区;为每一个原函数分配最近的二级跳转指令存储空间,为每个补丁函数分配最近的三级跳转指令存储空间;生成每个原函数的二级跳转指令序列,并存储于对应的二级跳转指令存储空间内,生成每个补丁函数的三级跳转指令序列,并存储于对应的三级跳转指令序列空间内;最后,将每个原函数的首条指令修改为一级跳转指令。本发明不影响系统程序的运行,也无需修改编译器;且内存空间浪费少,补丁启用时间短。
申请公布号 CN104809018A 申请公布日期 2015.07.29
申请号 CN201510253567.4 申请日期 2015.05.18
申请人 烽火通信科技股份有限公司 发明人 刘应江;简楹
分类号 G06F9/445(2006.01)I 主分类号 G06F9/445(2006.01)I
代理机构 武汉智权专利代理事务所(特殊普通合伙) 42225 代理人 张凯;刘丽君
主权项 一种嵌入式系统软件注入热补丁的方法,其特征在于,包括以下步骤:S1、在软件的程序编译阶段,在软件程序的各模块代码段中预留出若干二级跳转表预留区;在软件的补丁文件编译阶段,在补丁文件的各模块代码段中预留出若干三级跳转表预留区,转入步骤S2;S2、将离每个原函数最近的二级跳转表预留区,作为该原函数的二级跳转指令存储空间;将离每个补丁函数最近的三级跳转表预留区,作为该补丁函数的三级跳转指令存储空间;生成每个原函数的二级跳转指令序列,并存储于对应的二级跳转指令存储空间内;生成每个补丁函数的三级跳转指令序列,并存储于对应的三级跳转指令序列空间内,转入步骤S3;S3、将每个原函数的首条指令修改为一级跳转指令;当系统运行每个原函数时,根据该原函数的一级跳转指令,由原函数跳转至对应二级跳转指令序列的首地址;根据该二级跳转指令序列,由该二级跳转指令序列跳转至对应三级跳转指令序列的首地址;根据该三级跳转指令序列,最终由三级跳转指令序列到函数补丁的跳转。
地址 430074 湖北省武汉市东湖开发区光谷创业街67号