Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在 Windows 中,可以通过构造 PTE 本身的地址来访问特定虚拟地址的 PTE 结构。这是因为所有 PTES 都映射在从某个地址开始的虚拟地址空间中。
Mac OS X 也是这样吗?我的意思是,我可以访问给定虚拟地址的 PTE 吗?
当然,您可以,但只能在内核模式下,通过“pmap”层。您将需要 CR3 的相关值(即进程(或内核)上下文),因为 CR3 的不同值意味着不同的页表。但是请注意,这些不是公开的 KPI(内核公共/编程接口),因此需要制作一个每个内核版本都非常具体的 kext。目前尚不完全清楚为什么在所有这些中你都需要 PTE,因为 xnu 从 start.S 的第二行开始是虚拟的 - 但它仍然是可能的。