函数热升级或热补丁技术
Posted freedh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数热升级或热补丁技术相关的知识,希望对你有一定的参考价值。
服务端程序要求,7*24小时不断服,所以,热升级或者热补丁是常见的非功能性需求。
业界常见方法,采用在jmp跳转的方法,比较容易实现。具体实现方法就是,老的函数(被替换的函数),新的函数(替换函数)。
替换的原理,在老的函数第一个条指令前,加入一个无条件跳转指令,跳转到新的函数,当新的函数retur后,回到老函数的调用函数继续执行,而非,老的函数继续执行;这样的话,老的函数就不知不觉的被跳过执行了。
参考:
- https://www.codeproject.com/Articles/1043089/HotPatching-VERY-Deep-Inside
- https://nullprogram.com/blog/2016/03/31/
以上是关于函数热升级或热补丁技术的主要内容,如果未能解决你的问题,请参考以下文章