
链接装载那些儿
文章平均质量分 70
alexmahone_xie
这个作者很懒,什么都没留下…
展开
-
关于.bss段的讨论,全局未定义变量和未定义的局部静态变量
<br />由《程序员的自我修养》给出的例子:<br />/*SimpleSection.ctest the coff obj's structureauthor:wuyichaodate: 2011-2-26*/int printf( const char* format,... );int global_var; ///并没有放到.bss段里面,由符号表里看而是放到了.data段中,与elf有区别void func1(int i){ printf("%d/n原创 2011-02-26 22:49:00 · 2916 阅读 · 0 评论 -
PE
<br />PE里面常见的术语:<br />RVA :relative virtual address 相对虚拟地址,是相对于PE文件的装载基地址的一个偏移地址.<br /> <br /> <br />基地址: BASE address,PE文件装载时候都有一个装载目标地址(Targe Address)<br />而RVA就是基于BASE address 相对地址<br /> <br /> <br />装载一个PE可执行文件的过程:<br />1.读取文件的第一个页,获取dos 头,PE的文件头,段表<br原创 2011-02-27 11:11:00 · 731 阅读 · 0 评论 -
windows DLL那些事儿
在windows下常见的动态链接库文件:.DLL, .ocx, .CPL dll与exe都是PE格式的二进制文件,只是PE头部的一个符号位来表示是exe或者是dlldll的共享数据段------为了实现进程通信。但是为了安全起见,一般不使用共享数据段。DLL中导出,导入机制:关于符号的导入,导出在编程时常用的几种办法:1.程序中定义函数或者变量时候,用下面的c/c++扩展来修饰使用_declspec(export) 函数名或者变量 _declspec(import) 函数名或者变量2.使用模块原创 2011-02-27 22:52:00 · 1516 阅读 · 0 评论