2011年12月9日

《windows核心编程系列》谈谈基址重定位和模块绑定

摘要: 每个DLL和可执行文件都有一个首选基地址。它表示该模块被映射到进程地址空间时最佳的内存地址。在构建可执行文件时,默认情况下链接器会将它的首选基地址设为0x400000。对于DLL来说,链接器会将它的首选基地址设为0x10000000,然后将该地址以及代码、数据的相关地址都写入它们的PE文件中。当它们被加载时,加载程序读取首选基地址的值,并试图把它们加载到相应位置。对于可执行文件和DLL中的代码,它们运行的时候所引用的的数据的地址,在链接的时候就已经确定。并且这些都是当exe文件或是DLL被加载到它们的首选基地址处时才是有效的。 对于汇编代码:MOV[0x00414540],5 它是将5赋值给0 阅读全文

posted @ 2011-12-09 22:52 ithzhang 阅读(278) 评论(0) 推荐(0)

导航