在受保护环境中运行汇编程序代码的方法(x86-64)

时间:2018-03-14 11:30:01

标签: linux x86-64 virtualization processor user-mode-linux

我正在尝试用C ++创建一个Linux软件,它需要在x86和x86-64处理器的受保护环境中运行代码。

我的问题是找到一种在受保护环境中运行代码的方法,首先,仅在x86-64上(它是处理器工作方式的技术部分),我看到了本地描述符表,但我发现它不再有用在x86-64上。我也听说过英特尔VT技术,但文档似乎很复杂。

您是否了解如何在进程内的linux和x86-64上的受保护环境中运行代码?

我的目标是在linux进程中创建类似OS的东西。

就像Windows或Linux一样,我希望在我的受保护环境中运行的程序不能访问我的部分软件,并在需要时进行系统调用。我相信我找到了一种方法,我将其解释如下。

1 个答案:

答案 0 :(得分:0)

我找到了一种方法来做我想要的事情:

每次我的程序将从主要部分切换到内部程序时,它将使用mprotect(Linux上的Glibc函数)来更改访问该进程大部分内存的权限。

每次程序内部的程序都会对我的程序进行系统调用,它将更改回访问内存的权限。

你可能认为它存在安全问题,因为程序里面可以运行任何类型的代码并访问系统调用linux,因此可以访问不允许的东西。但我相信我可以使用一个棘手的方法,禁止内部代码启动任何类型的操作码。