Что такое песочница - PullRequest
13 голосов
/ 04 июня 2011

Когда антивирусы запускают какое-либо приложение в виртуальной среде, называемой «песочницей», как эта песочница точно работает с точки зрения ядра Windows?

Сложно ли написать такую ​​песочницу?

1 Ответ

13 голосов
/ 04 июня 2011

На высоком уровне такие песочницы являются драйверами ядра, которые перехватывают вызовы API и изменяют результаты, которые эти API возвращают, используя перехват.То, как целое решение для песочницы работает под капотом, может легко заполнить несколько книг.

Что касается сложности, это, вероятно, одна из самых сложных вещей, которые вы когда-либо могли написать.Вы не только должны предоставлять хуки для большинства всего, что предоставляет ядро ​​операционной системы, но вы также должны предотвращать доступ приложения к пространству памяти других процессов, у вас должен быть способ сохранить состояние изменений, которые вносит программа.что программа не понимает, что работает под песочницей.Вы должны делать все это в режиме ядра, который фактически ограничивает вас в использовании C и заставляет вас работать с различными видами памяти, например, с выгружаемым пулом и невыгружаемым пулом.О, и вы должны сделать все это очень быстро, чтобы пользователь чувствовал, что стоит запускать приложения внутри вашей песочницы.Хиты производительности более 50% не будут допускаться большинством пользователей.

...