2012-04-21 1 views
0

Я хочу создать поток или процесс, который будет иметь собственное виртуальное адресное пространство (это, вероятно, должен был быть отдельный процесс) без системных библиотек в адресном пространстве. Моя цель - создать среду исполнения для кода иностранного происхождения.Threadbox

Я хотел бы создать поток без системных библиотек, всего лишь несколько исполняемых страниц, где будет скопирован код пользователя, и будет помещена точка ввода потока, а также несколько страниц RW для стека и обмена данными с основным потоком.

Возможно ли полностью отменить все системные библиотеки на Windows (или, возможно, Linux) из виртуальной памяти с уровня приложения?

+0

Что вы пытаетесь достичь? Как вы не позволяете коду самостоятельно выполнять системные вызовы? (без использования общих системных библиотек) – mensi

+0

Да, я хочу полностью отделить код от компьютера и предоставить ему доступ к данной области памяти. Я полностью забыл о системных прерываниях ... Это тоже проблема, и нужно как-то отключить ее. – Sebi

ответ

0

Unmapping системные библиотеки не будут препятствовать выполнению системных вызовов двоичным кодом. Чтобы уловить все операции, которые вы пытаетесь предотвратить, необходима некоторая форма двоичного перевода. Вы можете захотеть взглянуть на libdetox и fastBT (Google Tech Talk about fastBT)

0

В зависимости от того, что вы хотите достичь, было бы легче управлять чужой код внутри User-Mode Linux, QEMU, VMware или другое решение для виртуализации (используя новую копию виртуального жесткого диска для каждого запуска, не предоставляя никаких сетевых интерфейсов и т. д.).