如何预留一定数量的内存并使用段寄存器访问?

逆向工程 x86 记忆 保护
2021-06-17 01:09:29

所以基本上我试图重新实现一种内存保护技术,描述如下:

  • 256M 段保留给应用程序代码和
  • 512M 段是为一些特殊数据保留的(运行时不能修改)
  • ...
  • %fs 寄存器用于访问特殊数据的512M内存。

我想在 32 位 x86 上利用一些基于分段的保护,但是,我陷入了第一步,如何为上面提到的特殊数据保留一些内存?

所以基本上我想要做的与谷歌的本地客户端非常相似,我引用了它的wiki 的一些东西

Native Client 的 x86-32 实现以其新颖的沙箱方法而著称,该方法利用了 x86 架构很少使用的分段工具。

Native Client 设置 x86 段来限制沙盒代码可以访问的内存范围。

任何人都可以在这个问题上给我一些帮助吗?

1个回答

如果这是针对 Linux 的,那么请查看http://linux.die.net/man/2/arch_prctl,特别是该ARCH_SET_FS选项。