作者:jack1881的天空_925 | 来源:互联网 | 2023-06-27 10:11
切换进程是CR3会重新装载,我看一些文章说C0300000映射到CR3的物理地址,(我自己用softice也试过,如果CR3为0x39000的时候),那么CR3变化的时候,它还会被映射到C030000
切换进程是CR3会重新装载,我看一些文章说C0300000映射到CR3的物理地址,(我自己用softice也试过,如果CR3为0x39000的时候),那么CR3变化的时候,它还会被映射到C030000上面吗?
如果不会,怎么找到它映射的地址呢?
4 个解决方案
CR3指向的是页目录表在物理内存中的位置(而且必须页对齐),在windows中,页目录表被固定映射到进程空间的0C0000000h开始的位置(连续4MB的地址空间用于页目录表和页表),CR3保存在进程的TSS中,windows会设置该进程的页表,保证线性地址(在flat模型中,逻辑地址=线性地址)的0C0000000h总是映射到该进程的页目录表所在的那一页。
当然,这只是windows的做法,也可以不这样做。