Compute Literal Address from Segmented Address
Question
For example, say I have something like:
0x33:0x10
and I want to get an address in the form:
0x????????
from it. What is the easiest way to go about doing this? This is on Linux x86.
Solution
The selector in the segment register is decoded to give a descriptor table specifier and a descriptor table index. The base given in the table and index is added to the offset in order to give a final address within process space. In order to convert process memory to physical memory, the page tables must be read and decoded.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow