概述
段地址其實就是一種基地址,但基地址並不等於就是段地址。
所謂基地址,顧名思義就可以理解為基本地址,他是相對偏移量的計算基準。
在實模式下,通常都是以段+偏移來定位地址,因此說,這時,段地址是基地址的一種。但是在堆疊上,常常不以ss暫存器來作為定址基準,而是經常用bp暫存器來定址,因此,此時堆疊段的段址就不能說是基地址
而保護模式下,不再有“段”的概念,這時的段暫存器里保存的是“段選擇子”,根基地址根本就是兩回事。
進程的基地址
進程的基地址是指進程的EXE的ImageBase
1、可以從進程的EXE的檔案頭中直接讀取ImageBase值。EXE不存在重定位。
2、可以使用Process32First/Module32First系列API,MODULEENTRY32結構裡面有每個EXE/DLL的記憶體基地址。