基地址 HINSTANCE
2011-12-19 09:58
162 查看
基地址是内存映射EXE和DLL文件的首址,在Win32中这是一个很重要的概念。为了方便起见,WindowsNT 和 Windows9x用模块的基地址作为这个模块的实例句柄(HINSTANCE)。在Win32中,把模块的基地址叫做HINSTANCE可能导致混淆,因为术语"实例句柄"来自16位Windows。一个程序在16位Windows中的每个拷贝得到它自己分开的数据段(和一个联系起来的全局句柄)来把它和这个程序其它的拷贝分别开来,就形成了术语"实例句柄"。在Win32中,每个程序不必和其它程序区别开来,因为他们不共享相同的地址空间。术语INSTANCE仍然保持16位windows和32位Windows之间的连续性。在Win32中重要的是你可以对任何DLL调用GetModuleHandle()得到一个指针去访问它的组件(译注)。
如果 dllname 为 NULL,则得到执行体自己的模块句柄。这是非常有用的,如通常编译器产生的启动代码将取得这个句柄并将它作为一个参数hInstance传给WinMain !
(虚拟地址 0x10464)-(基地址 0x10000)=RVA 0x00464 (RVA 相对虚拟地址)
-------------------------------------------------------------------------------------------------------------------------
和微软的其它可执行格式一样,你可以通过查找它的起始偏移来得到真实首部,这个偏移放在DOS残留首部中。
WINNT.H头文件包含了DOS残留程序的数据结构定义,使得很容易找到PE首部的起始位置。
e_lfanew 域是PE真实首部的偏移。为了得到PE首部在内存中的指针,只需要把这个值加到映像的基址上即可。
---------------------------------------------------------------------------------------------------------------------
在Win32中Hinstance和hmoudle是同一个概念.保留Hinstance是因为要在16位系统中task区别.
如果 dllname 为 NULL,则得到执行体自己的模块句柄。这是非常有用的,如通常编译器产生的启动代码将取得这个句柄并将它作为一个参数hInstance传给WinMain !
(虚拟地址 0x10464)-(基地址 0x10000)=RVA 0x00464 (RVA 相对虚拟地址)
-------------------------------------------------------------------------------------------------------------------------
和微软的其它可执行格式一样,你可以通过查找它的起始偏移来得到真实首部,这个偏移放在DOS残留首部中。
WINNT.H头文件包含了DOS残留程序的数据结构定义,使得很容易找到PE首部的起始位置。
e_lfanew 域是PE真实首部的偏移。为了得到PE首部在内存中的指针,只需要把这个值加到映像的基址上即可。
---------------------------------------------------------------------------------------------------------------------
在Win32中Hinstance和hmoudle是同一个概念.保留Hinstance是因为要在16位系统中task区别.
相关文章推荐
- 数组的行地址、列地址和指针的应用
- 使用蓝牙提示“使用了与请求的协议不兼容的地址”
- apache 开源项目源码地址
- javascript理论篇(详情见地址)
- 通过malloc动态申请整形大小的内存,把地址强制转换成整形指针
- CCNA之网络地址转换(NAT)简介
- IPv6的地址解析
- 查找在线主机的 IP 地址,让对方无处遁形!
- MyEclipse 10破解方法及下载地址
- 阿里巴巴的一些地址
- ASP.NET Google Maps Javascript API V3 实战基础篇一地址解析
- 地址传递
- 转换视频网络地址网址
- Java使用默认浏览器打开指定地址
- github地址
- error C2065: “GWL_HINSTANCE”: 未声明的标识符
- git 给远程库 添加多个url地址
- ssh三层框架——上传文件(大小格式筛选+json返回相对地址)
- 本人博客地址http://blog.myspace.cn/qiuxingang
- C#编码Email地址,防火防盗防垃圾邮件