Как сделать песочницу на пк

Добавил пользователь Владимир З.
Обновлено: 10.09.2024

Руководство по запуску нескольких копий онлайн игр на одном ПК.

1. Заходим в Sandboxie, выбираем Песочница – Создать новую песочницу.

2. Пишем любое название и сохраняем.
3. Жмём правой кнопкой мышки на ярлыке игры, выбираем Запустить в песочнице.
4. В появившемся окне выбираем DefaultBox – песочница по умолчанию, жмём ОК.

5. Пишем логин, пароль в игре и сворачиваем её.
6. Снова запускаем игру с ярлыка, выбрав Запустить в песочнице.
7. Выбираем созданную ранее песочницу, жмём ОК.

Песочница Windows - это изолированная временная среда рабочего стола, в которой вы можете запускать ненадежное программное обеспечение, не опасаясь вредоносного воздействия на ваш компьютер. Windows Sandbox теперь поддерживает простые файлы конфигурации (расширение .wsb), которые обеспечивают минимальную поддержку сценариев. Вы можете использовать эту функцию в последней сборке Windows с номером 18342.

Песочница Windows

Песочница Windows обладает следующими свойствами:

  • Часть Windows - все необходимое для этой функции по умолчанию присутствует в Windows 10 Pro и Enterprise. Не нужно скачивать VHD!
  • Чистота - каждый раз, когда запускается Песочницу Windows, она так же чиста, как и новая установка Windows 10.
  • Одноразовая - на устройстве ничего не сохраняется; все удаляется после закрытия приложения
  • Безопасная - использует аппаратную виртуализацию для изоляции ядра, которая использует гипервизор Microsoft для запуска отдельного ядра, которое изолирует Windows Sandbox от хоста
  • Эффективная - использует встроенный планировщик ядра, интеллектуальное управление памятью и виртуальный графический процессор

Файлы конфигурации Песочницы Windows.

Чтобы настроить Песочницу Windows или автоматически запускать приложения и сценарии при старте, необходимо создать файл конфигурации. Для этого вы можете использовать Блокнот или любое другое приложение текстового редактора.

Файлы конфигурации песочницы имеют формат XML и связаны с песочницей файлом с расширением .wsb. Каждый файл конфигурации, который вы создаете для Windows Sandbox, должен начинаться со строки и заканчиваться строкой . Весь другой код, который вы собираетесь добавить, должен быть помещен между этими строками кода. Создав файл конфигурации и добавив в него нужный код, вы должны сохранить его, используя расширение файла .wsb. Затем вы можете дважды кликнуть созданный файл .wsb, чтобы запустить свою персональную песочницу Windows.

Файл конфигурации позволяет пользователю контролировать следующие аспекты Песочницы Windows:

  1. vGPU (виртуализированный графический процессор)
  • Включите или отключите виртуализированный графический процессор. Если vGPU отключен, Sandbox будет использовать WARP (программный растеризатор).
  1. Сеть
  • Включить или отключить сетевой доступ к песочнице.
  1. Общие папки
  • Делитесь папками с хоста (ваш ПК) с разрешениями на чтение или запись. Обратите внимание, что раскрытие директорий хоста может позволить вредоносному программному обеспечению повлиять на вашу систему или украсть данные.
  1. Запуск скрипта
  • Автоматическое действие после входа в песочницу.

Поддерживаемые параметры конфигурации:

Как включить или отключить виртуальный графический процессор в песочнице Windows.

VGpu Включает или отключает совместное использование GPU.

Поддерживаемые значения:

Disable – отключить поддержку vGPU в песочнице. Если это значение установлено, будет использовать программный рендеринг, который может быть медленнее, чем ваш графический процессор.

Default - это значение по умолчанию для поддержки vGPU; это означает, что vGPU включен.

Windows Sandbox также позволяет отключить механизм рендеринга виртуального графического оборудования. Другими словами, песочница разделяет вашу видеокарту с Windows 10 по умолчанию. Однако вы можете отключить эту функцию и заставить ее использовать программный рендеринг. Несмотря на то, что она теперь работает медленнее, в некоторых ситуациях это может быть полезно.

Чтобы отключить поддержку VGpu, в файле .wsb добавьте следующий код:

Включить:

VGpu>Default

Как включить или отключить сеть в Песочнице Windows.

Включает или отключает сеть в песочнице. Отключение доступа к сети может использоваться, чтобы уменьшить вероятность атаки для песочницы.

Disable – отключить сеть в песочнице.

Default - это значение по умолчанию для поддержки сети. Позволяет создавать сети путем создания виртуального коммутатора на вашем хосте и подключать к нему изолированную программную среду через виртуальный сетевой адаптер.

Примечание: Включение сетевых подключений может привести к тому, что ненадежные приложения окажутся в вашей внутренней сети.

MappedFolders

Оборачивает список объектов MappedFolder.

Примечание: Файлы и папки, сопоставленные с хостом, могут быть скомпрометированы приложениями в изолированной программной среде или потенциально повлиять на хост.

Как поделиться папками с Песочницей Windows.

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

ReadOnly: при значении true обеспечивает доступ только для чтения к общей папке из контейнера. Поддерживаемые значения: true / false.

Примечание: Вы можете добавить столько папок для совместного использования, сколько хотите: просто убедитесь, что их пути указаны между тегами . Кроме того, для каждой папки, которую вы добавляете в список, вы можете указать, хотите ли вы, чтобы песочница Windows имела к ней доступ только для чтения или для записи.

Как автоматически запустить приложение или скрипт в Windows Sandbox.

Песочница, также позволяет открывать приложение (исполняемый файл) или скрипт сразу после запуска. Чтобы сделать это, в файле конфигурации .wsb , вы должны добавить этот код:

Команда: Командой может быть путь к любому исполняемому файлу или скрипту, доступному внутри песочницы Windows. Это означает, что вы можете, например, автоматически открывать Проводник, Блокнот или другие системные приложения.

Примечание: Хотя очень простые команды будут работать (запуск исполняемого файла или скрипта), более сложные сценарии, включающие несколько шагов, должны быть помещены в файл скрипта. Этот файл сценария может быть сопоставлен с контейнером через общую папку, а затем выполнен с помощью директивы LogonCommand.

Создать файл конфигурации

Создайте новый текстовый файл с расширением .wsb и скопируйте в него один из примеров.

Файлы конфигурации песочницы

Двойным кликом по созданному файлу * .wsb вы откроете его в песочнице Windows.

 файл конфигурации можно использовать для простого тестирования загруженных файлов внутри песочницы.

Пример файла конфигурации — 1.

Downloads.wsb

Пример файла конфигурации — 2.

Следующий файл конфигурации устанавливает код Visual Studio в контейнер, что требует немного более сложной настройки LogonCommand.

Две папки отображаются в контейнере; первый (SandboxScripts) содержит VSCodeInstall.cmd, который установит и запустит VSCode. Предполагается, что вторая папка (CodingProjects) содержит файлы проекта, которые разработчик хочет изменить с помощью VSCode.

С помощью сценария установщика VSCode, уже сопоставленного с контейнером, LogonCommand может ссылаться на него.


Начнем с описания принципов работы Windows 10. Операционная система представляет собой обширнейший набор связанных компонентов, взаимодействующих между собой. При этом стороннее программное обеспечение (особенно установленное из непроверенных источников) может внести неожиданные изменение в работу всей системы.

А в некоторых случаях и вовсе пустить ее под откос.

Основные характеристики программы:

По умолчанию Windows Sandbox отключена. Поэтому для запуска в ней подозрительных программ утилиту нужно предварительно активировать. Для этого:

??Как запустить "Песочницу" на Windows

Если вы собираетесь открыть какую-то не очень проверенную программу, но не хотите сильно запариваться с дедиками и виртуалками - для вас есть другой выход:

?1. Запустите Панель управления
?2. Откройте раздел "Программы и компоненты"
?3. Нажмите на пункт "включение и выключение компонентов Windows"
?4. Выберите "Песочница Windows" и нажмите "ок"
?5. Перезагрузите ПК, в меню должно появиться приложение "Windows sandbox"
?6. Для проверки программы скопируйте файл из основной системы в песочницу
?7. Установите и запустите приложение в песочнице. Вы великолепны.

Даже при наличии вирусов, они не смогут проникнуть в основную систему, нанеся значимый вред. Но учтите: при закрытии песочницы файл сотрется.

Предполагаемый уровень подготовки читателя

Разработка виртуальной машины – задача не для начинающих программистов, так что я предполагаю, вы имеете опыт в программировании для Windows, и, в частности:

• вы хорошо пишете на C/C++;
• имеете опыт в Win32 API программировании;
• прочли книги о внутреннем устройстве Windows (например, книги Марка Руссиновича);
• имеете базовое представление о сборке софта.

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

Виртуальные машины и песочницы – в чём разница?

В этом цикле статей мы собираемся сосредоточиться на разработке легковесной виртуальной машины. Главная идея состоит в том, чтобы перехватывать запросы ОС к критическим системным операциям и перенаправлять их к некоторого рода виртуальному хранилищу, к выделенной папке, для операций с файлами, в частности. Скажем, есть некоторое приложение, для которого мы хотим эмулировать модификации файла с именем C:Myfile . Мы должны сделать копию этого файла в нашей виртуальной папке, скажем, C:SandboxCMyfile , и перенаправлять все операции, которые осуществляет приложение над данным файлом, к его виртуальному двойнику. То же самое касается операций над реестром и ещё некоторых системных механизмов.

Что следует виртуализировать и каким образом?

Давайте подведём итоги, что именно означает виртуализация операции. Начнём с виртуализации файловой системы. Как вы знаете, для получения доступа к файлу приложение сперва открывает его.

С точки зрения Windows, происходит вызов функции API, такой как CreateFile(). Если вызов осуществлен успешно, приложение может читать и писать в файл. Когда работа закончена, файл закрывается посредством вызова CloseHandle() API. Таким образом, мы должны иметь возможность перехватить вызов CreateFile(), изменить его параметры, такие как имя файла, которое приложение хочет открыть. Этим мы бы принудительно заставили приложение открыть другой файл.

Но перехватывать именно вызов CreateFile() – плохая идея по нескольким причинам: во-первых, приложение может открыть файл и другим образом, не только используя CreateFile(). Например, это может быть сделано посредством NtCreateFile(), нативного вызова API, которая по факту и вызывается в CreateFile(). Таким образом, перехватив NtCreateFile(), мы перехватим и CreateFile(), потому что в конечном итоге он вызывает NtCreateFile(). Но NtCreateFile() не является самой нижележащей функцией.

Мы не будем перехватывать чтение или запись как таковые – вполне достаточно перехватывать функции режима ядра, эквивалентные (CreateFile() (OpenFile()) для того, чтобы перенаправлять всю остальную работу с файлами в нашу виртуальную папку. Однако виртуализации файловой системы недостаточно. Нам также следовало бы виртуализовать реестр и некоторые другие примитивы операционной системы. Но сейчас давайте сосредоточимся именно на виртуализации файловой системы, и начнем мы с обсуждения общих вопросов, касающихся устройства файловых систем и некоторых компонентов режима ядра.

Объекты привилегированного режима и объекты типа


Фильтры файловой системы


Написание драйвера фильтра является далеко не простой задачей и требует много шаблонного кода. Существует масса запросов, получаемых от различного рода драйверов файловой системы (и следовательно, фильтров). Вы должны написать обработчик (или, более конкретно, диспетчерскую процедуру (dispatch routine)) для каждого типа запроса, даже если вы не хотите делать специальную обработку того или иного отдельного запроса. Типичная диспетчерская процедура драйвера-фильтра выглядит так:

Кадр содержит параметры процедуры, которые могут быть прочитаны или изменены. Эти параметры включают в себя входные данные для запроса, например, имя файла, который будет открыт при обработке запроса IRP_MJ_CREATE. Если мы хотим изменить некоторые значения для нижнего драйвера, мы должны вызвать IoGetNextIrpStackLocation (), чтобы получить кадр стека нижнего драйвера. Большинство драйверов просто вызывают IoSkipCurrentIrpStackLocation(): эта функция меняет указатель кадра стека внутри IRP так, что драйвер нижнего уровня получает тот же кадр, как и наш драйвер. С другой стороны, драйвер может вызвать IoCopyCurrentIrpStackLocationToNext() для копирования содержимого кадра стека в кадр нижележащего фильтра, но это более затратная процедура, и ее обычно используют, если драйвер хочет выполнить какую-то работу после обработки запроса ввода-вывода путем регистрации процедуры обратного вызова, которая называется процедурой завершения ввода-вывода.

Приведенный выше код регистрирует устройство-фильтр для запросов, отправляемых к именованным каналам. Сначала он получает экземпляр класса DEVICE_OBJECT виртуального устройства, которое представляет каналы:

С этого момента мы почти закончили наш минимальный драйвер-фильтр. Все, что нам нужно сделать – это закодировать процедуру DriverEntry(), которая просто вызывает RegisterLegacyFilter:

Минифильтры файловой системы


Заключение

В нашем телеграм канале мы рассказываем о главных новостях из мира IT, актуальных угрозах и событиях, которые оказывают влияние на обороноспособность стран, бизнес глобальных корпораций и безопасность пользователей по всему миру. Узнай первым как выжить в цифровом кошмаре!

Читайте также: