链接、装载与库
suhiymof
这个作者很懒,什么都没留下…
展开
-
从操作系统角度看可执行文件的装载
1、进程的建立一个新进程的创建首先做三件事。一:创建独立的虚拟地址空间。二:读取可执行文件头,并建立虚拟地址和可执行文件的映射关系。三:将CPU指令寄存器设置成可执行文件的入口地址,启动运行。一个虚拟空间由一组页映射函数将各个页映射至相应的物理空间。在i386的Linux下,创建虚拟地址空间实际上只是分配了一个页目录即可,甚至不设置页映射关系,这些页映射关系可以等到后面程序转载 2014-07-22 18:07:25 · 871 阅读 · 0 评论 -
地址无关代码
转自《程序员的自我修养》转载 2014-07-31 17:54:40 · 1323 阅读 · 0 评论 -
挖掘目标文件(一)
int printf(const char* format, ...);int global_init_var = 84;int global_uninit_var;extern char __executable_start[];__attribute__ ((section("FOO"))) int global =43;typedef int ...原创 2018-06-13 00:19:44 · 257 阅读 · 0 评论