怎样找到正在运行的程序的基地址??(50分)

  • 主题发起人 主题发起人 AKang
  • 开始时间 开始时间
基地址??<br>win32每个程序都有自己的4G进程空间<br>程序的基地址是什么?<br>
 
HInstance应该可以.
 
hInstance 只是一个实例句柄,<br><br><br>没事找那个干什么?
 
我想他可能是要做象fpe一样的东西吧,<br>谁能回答,我也想知道!
 
在WIN32中,每个应用程序都可“看见”4GB的线性地址空间,其中最开始的4MB和最后的2GB由操作系统保留,剩下不足2GB的空间用于应用程序私有空间。具体分配如下:0xFFFFFFFF-0xC0000000的1GB用于VxD、存储器管理和文件系统;0xBFFFFFFF-0x80000000的1GB用于共享的WIN32 DLL、存储器映射文件和共享存储区;0x7FFFFFFF-0x00400000为每个进程的WIN32专用地址;0x003FFFFF-0x00001000为MS-DOS 和 WIN16应用程序;0x00000FFF-0x00000000为防止使用空指针的4,096字节。以上都是指逻辑地址,也就是虚拟内存。
 
在WIN32中,每个应用程序都可“看见”4GB的线性地址空间,其中最开始的4MB<br>和最后的2GB由操作系统保留,剩下不足2GB的空间用于应用程序私有空间。具体<br>分配如下:0xFFFFFFFF-0xC0000000的1GB用于VxD、存储器管理和文件系统;0xBFFFFFFF-0x80000000的1GB用于共享的WIN32 DLL、存储器映射文件和共享存<br>储区;0x7FFFFFFF-0x00400000为每个进程的WIN32专用地址;0x003FFFFF-<br>0x00001000为MS-DOS 和 WIN16应用程序;0x00000FFF-0x00000000为防止使用<br>空指针的4,096字节。以上都是指逻辑地址,也就是虚拟内存。<br>
 
试试这个api函数ReadProcessMemory,<br>偶然看见的,查查delphi的win32 sdk帮助吧。<br>搞好了告诉我一声
 
用softice 跟踪就知道了,代码段和数据段的基址有可能不一样的。如果有多个代码<br>段,基址也是不一样的。<br>可以用INT31 DPMI 得到罢? 好象window api 也可以得到,先得到选择符,再得到base and limit, &nbsp;问题是你想做什么?<br>如果不是想用编程得到,那就太简单了,运行softice。
 
多人接受答案了。
 
后退
顶部