函数热升级或热补丁技术

Posted freedh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数热升级或热补丁技术相关的知识,希望对你有一定的参考价值。

服务端程序要求,7*24小时不断服,所以,热升级或者热补丁是常见的非功能性需求。

 

业界常见方法,采用在jmp跳转的方法,比较容易实现。具体实现方法就是,老的函数(被替换的函数),新的函数(替换函数)。

替换的原理,在老的函数第一个条指令前,加入一个无条件跳转指令,跳转到新的函数,当新的函数retur后,回到老函数的调用函数继续执行,而非,老的函数继续执行;这样的话,老的函数就不知不觉的被跳过执行了。

 

参考:

以上是关于函数热升级或热补丁技术的主要内容,如果未能解决你的问题,请参考以下文章

Android热补丁技术方案整理

Linux内核热补丁方案对比

阿里资深工程师分享支付宝热补丁技术—— AndFix原理

安卓App热补丁动态修复技术介绍

如何替换一个Linux内核函数的实现-热补丁原理

内核热补丁,真的安全么?