前端之家收集整理的这篇文章主要介绍了
c – 加载程序如何将DLL映射到进程地址空间,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我很想知道Loader如何将DLL映射到处理地址空间.装载机如何做到这一点.举例非常受欢迎.
提前致谢.
你在寻找什么样的细节?在基本层面上,所有动态
链接器的工作方式几乎相同:
>动态库被编译为可重定位代码(例如,使用相对跳转而不是绝对跳转).>链接器在应用程序的内存映射中找到适当大小的空白空间,并将DLL的代码和任何静态数据读入该空间.>动态库包含每个导出函数开头的偏移表,并且在加载时对客户端程序中DLL函数的调用使用新的目标地址进行修补,具体取决于库的加载位置.>大多数动态链接器系统都有一些系统,用于为特定库设置首选基址.如果在其首选地址加载库,则可以跳过步骤2和3中的重定位.
原文链接:https://www.f2er.com/c/110971.html