CR0.WP=1 后暴露 bootloader 页表页(0xf8xxxx)只读的隐藏问题:MapPage 写 pml4.entries 触发 #PF(slog.so 映射 0x600000 新建页表项时 cr2=0xf801000 err=0x3)。MakePTWritable 遍历页表层次把 pml4/pdp/pd/pt 页表页自身设可写,.rodata 内容页仍只读保护。
CR0.WP=1 后暴露 bootloader 页表页(0xf8xxxx)只读的隐藏问题:MapPage 写 pml4.entries 触发 #PF(slog.so 映射 0x600000 新建页表项时 cr2=0xf801000 err=0x3)。MakePTWritable 遍历页表层次把 pml4/pdp/pd/pt 页表页自身设可写,.rodata 内容页仍只读保护。