В одном из уже давнишних номеров ][ у нас была статья «Portable – вот она, радость», где мы рассказывали, как из практически любой программы можно сделать портируемую версию, которая будет запускаться без установки, записать ее на флешку и всегда носить с собой. В ход тогда была пущена дорогостоящая утилита Thinstall. Позже этот проект был куплен компанией VMware, и весь его функционал сейчас представлен в приложении VMware ThinApp. Как и другие продукты этой компании, ThinApp занимается виртуализацией, а точнее – виртуализацией приложений. Задача такой операции в том, чтобы создать виртуальное окружение для отдельно взятого приложения. Это приложение не должно подозревать о том, что запущено на другом компьютере; оно может, как и задумано разработчиками, обращаться к реестру, файловой системе и находить там ключи и файлы, которые были добавлены во время процедуры установки. Файлы приложения и все необходимые данные помещаются в единственный исполняемый .EXE-файл. Во время его запуска в системе развертывается виртуальное окружение, которое эмулирует нужные ключи реестра, DDL’ки, библиотеки сторонних разработчиков, всевозможные фреймворки, а приложение запускается как ни в чем не бывало. При этом никакие драйвера в систему не устанавливаются, в реестр изменения не вносятся – приложение полностью работает внутри виртуального окружения. Хороший подход, и ThinApp отлично его реализует, но одна загвоздка – решение стоит как минимум $6050. Не кисло, да?

Впрочем, аппетит компании, возможно, в скором времени утихнет, потому как в Сети недавно появилось реальная альтернатива для виртуализации приложений. Программа Cameyo (www.cameyo.com) делает ровно то же самое, что и ThinApp, с одной лишь разницей – ничего за это не просит. И знаешь, на месте VMware я бы начинал бояться. Сложно представить, как можно сделать процесс портирования еще проще, чем это реализовано в Cameyo. После установки из 1,5 Мб дистрибутива пользователю предлагается интерфейс с двумя кнопками: одна для создания нового контейнера, а другая — для модификации ранее созданных пакетов. Если нажать на первую («Capture installation») программа начнет делать слепок (snapshot) системы, сохраняя для себя состояние файловой системы и реестра – от этой информации ей придется отталкиваться. Как только snapshot будет сделан, Cameyo предложит приступить к установке приложения, для которого необходимо сделать Portable-версию. Пусть это будет Opera, а для полноты картины – еще и Flash-плеер для нее, а также Java-плагин. Тут никаких заморочек, просто устанавливаем все, как обычно; если требуется перезагрузка – смело ребутимся (это корректно обрабатывается). Как только установка и настройка закончены, можно нажимать на кнопку «Install done». В этот момент Cameyo еще раз сделает слепок системы, чтобы сравнить, какие изменения произошли, и на основе этих данных создать Portable-пакет. Процесс может занять несколько минут, после чего программа обрадует сообщением «Package successfully created».

Вот, собственно, и все. Получившийся EXE’шник можно попробовать запустить на любой Windows-системе и убедиться, что и сам браузер, и все дополнительно установленные плагины работают. Можно записывать на флешку и без каких-либо проблем использовать на любом компьютере. Правда, есть один нюанс — в контейнер помещается довольно много различных данных, поэтому вес пакета может быть довольно внушительным. Например, получившийся у меня пакет с Opera 10.62 весит аж 139 Мб. Но тут есть секрет: если изучить содержимое контейнера, легко обнаружить в нем файлы, которые Cameyo поместил в него по ошибке, и на самом деле никакой необходимости в их виртуализации нет. Скажем, в мой пакет с Opera попал файл с индексом Dropbox’а, которой весит почти 15 Мб, а ведь это десятая часть всего объема получившегося пакета. Посмотреть, что находится внутри контейнера, и внести изменения можно через Cameyo, кликнув по второй (и последней) доступной кнопке «Edit existing package». На вкладках «Files» и «Registry» легко увидеть, какие файлы и ветки реестра эмулируются. При необходимости любой элемент можно удалить или наоборот, что-то добавить. Интересная опция доступна на самой первой вкладке «General» – это Isolation Mode. По умолчанию любое Portable-приложение работает полностью изолированно и не может вносить изменения в систему. Однако при необходимости режим пакета можно изменить на «Full Access», и тогда у программы появится полноценный доступ к файлам и реестру, как и у любого другого приложения.

Помимо самого Cameyo, на сайте разработчика есть SDK для разработчика. С помощью простого API вполне реально автоматизировать процесс, полностью заточить его под свои нужды. С помощью простых функций легко получить список файлов внутри пакета, работать с ключами реестра, которые редактируются, и т.д. Короче говоря, все в твоих руках.

Степа Ильин

Главный редактор «Хакера» с 2012 по начало 2014 года. Сейчас с командой единомышленников строит компанию Wallarm, разрабатывающую решения для защиты веб-приложений от хакерских атак и обнаружения в них уязвимостей.

Теги:

Check Also

HTB Axlle. Повышаем привилегии через StandaloneRunner

В этой статье я покажу, как повысить привилегии в Windows при помощи техники LOLBins, на п…

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии