c语言如何实现动态替换动态库so文件后,主程序自动加载更新?
为了实现热更新,so的加载机制必须由主程序接管,而不需要修改操作系统。so更新后,将手动或自动触发锁定加载解锁过程。
elf可执行文件如何动态加载一个so?
有三种方法:1。在elf的末尾插入外壳代码,然后修改elf文件的最后一个pt,通过增加段头来加载段的长度。将dt_uinitsection或dt_initarray的指针指向您的外壳代码,这也是一般增强技术的方法。2将此elf文件a打包到另一个elf文件b中。在完成b中的操作后,加载a。如果不想将a释放到文件系统中,则必须自己实现链接器。纳加的增援也做了同样的事。三。修改elf文件中的动态部分并添加一个新的dt类型的部分。所需的节点还应在strsz部分中写入要加载到dt的so的名称,因为elf文件中的所有地址都是死的,所以可能没有空位置供您插入新节点。您可能需要删除现有节点才能插入新节点。如果您熟悉llvm,那么可以使用llvm将elf文件转换为与地址无关的lir语言,然后对其进行修改。
原文标题:动态壁纸大全 c语言如何实现动态替换动态库so文件后,主程序自动加载更新?,如若转载,请注明出处:https://www.saibowen.com/tougao/18797.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「赛伯温」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。