![]() |
F.A.Q. - Portable - это как? |
Дата: 12 ноября 2009 | ![]() |
| 2595 просмотров | 1 комментариев | Напечатать | Автор: koster_05 | ||
![]() Начну с забитой фразы. Последнее время большую популярность приобрел так называемый портативный (Portable) софт. Его главная особеннось - полная работоспособность без установки. Этот обзор направлен на обзор некоторых принципов создания портативного софта и (внимание) признаков псевдопортативности и безопасности сыра в мышеловке. Говорить постараюсь структурированно и непредвзято (но честно и со своими предпочтениями). Для начала разберемся с базой: Операционная система, которая берется за базу в обзоре - Windows XP SP3. Портативным считаем софт, который: 1) будучи сделан на на одной не испорченной кривыми руками и софтами машине нормально работает на такой же "чистой" машине; 2) не конфликтует с уже установленным стандартно таким же софтом (т.е. с настоящего софта не слетает регистрация и т.п.); 3) не оставляет следов в реестре и файлах, кроме некоторых неизбежных (безобидных) и кроме самих результатов работы. Специально пронумеровал эти условия, чтобы ниже ссылаться (1), (2), (3). Считайте их непоколебимыми заповедями (как у роботов Айзека Азимова). Теперь собственно способы изготовления портативного софта и как следствие - его внешний вид и (что важно) признаки. Я самовольно разобью Portable на 3 группы и оценю соответствие портативности (1)(2)(3) на оценку (-)(-+)(+-)(+), что значит выполнение условия (маловероятно)(не достаточно)(достаточно)(вероятно). 1. Софт изначально портативный Такой софт можете либо Вы написать самостоятельно; (1+)(2+)(3+) может опционально (по Вашему усмотрению) становиться портативным (пример - KMPlayer, Free Download Manager); (1+)(2+-)(3+-) может и без установки работать (будучи извлеченным из Program Files), т.е. он и так портативный (ну там плюс-минус портативный), а Вы и не догадывались. (1-+)(2-)(3-+) Способы выявления. О методах определения такого портабла можно сказать только одно: если софтина не относится к следующим двум категориям, она относится сюда. Теперь танцы с бубном. Софтина капризная, а может еще и с регистрацией. А запортаблить нужно. 2. PortableApps Это технология портабелизации, укоторой есть как сторонники, так и... Я :). Шучу. Почти шучу. В этом случае в программе NSIS (Nullsoft Scriptable Install System - распространенный бесплатный и мощный создатель инсталяторов на основе скриптов от создателей Winamp) делается загрузочный файл к основной программе, который прединсталирует в систему записи реестра и некоторые нужный файлы, запускает основную прогу, после работы все это чистит, стараясь на флешке еще и запомнить настройки софта. Сразу скажу, что лично мне этот метод нравится только когда необходимо совершенно легально пользоваться вечно триальным софтом (ведь никто не запретит Вам удалять на собственном компе некоторые файлы и записи реестра). Ну и когда следующий метод неприменим. В других случаях не хочется думать даже, что случится, если во время работы "мощной" и сложной сделанной таким способом софтины выключится свет. Все неподобранные файлы и записи реестра останутся в машине. Кстати, различные вирусы чаще всего присутствуют именно в таких портаблах, если вы их берете из непроверенного источника. Проверенным источником можно считать само движение PortableApps, стандартизировавшее этот метод портабелизации и снабжеющее всех желающих нужным инструментарием и документацией. В связи с вышесказанным оцениваю так: (1+)(2-+)(3+-) Способы выявления. Если применена именно технология PortableApps, портативка иногда спрашивает, куда установиться (это просто распаковка). В конечной папке можно обнаружить запускающий NSIS-экзэшник и папку App, где просто лежит вся софтина. Да и если технология другая - можете порробовать распаковать запускалочку в Universal Extractor, это может вообще оказаться просто SFX-архив (и возвращаемся к 1.). 3. Виртуализация Это чуть более поздний способ изготовления портативок. Он возник как побочный эффект административной виртуализации (метода администрирования и запуска программ через сеть при установке тоько на одном компьютере). Виртуализация - помещение программы в виртуальный контейнер (читай архив, отсюда огромный плюс - сжатие). При запуске этого контейнера программа "думает", что все записи реестра и файлы уже на месте - в системе (ничего никуда не копируется и не записывается - еще плюс). Отсюда и пошло название места, где хранятся все настройки программы - песочница (Sandbox). Вирус внутри контейнера такой программы - обезоружен, т.к. ничего не может записать в реальную систему - только в песочницу. Хотя сам вирус может извернуться, если создатель позаботисля, и записать нечто и в реальную систему. Зараженным же может быть только сам файл запуска - но это уж только проблемма чистоты рук и ОСей, по которым такая портативка гуляла. Изготовливается такой софт на основе снимков чистой, обычно виртуальной (так удобнее поддерживать чистоту) системы. Делается снимок ДО установки и настройки софта и ПОСЛЕ. На основе двух снимков получается проект с файлами, записями реестра и файлом конфигурации. Нужно отметить, что в этом проекте тонко настраивается изоляция от основной системы и для файлов и для записей реестра (полная - прога видит только свои записи, смешанная - можно читать из реальной системы, слитая - можно читать и писать в основную систему). Проблема возникает лотько с программами, требующими привязки к железу или драйверов уровня ядра. Наиболее подходящими для портабелизации инструментами виртуализации есть VMware ThinApp (Thinstall) и Xenocode Virtual Appliance Studio, наиболее активное обсуждение которых на просторах СНГ идет на forum.ru-board.com. Большинство же других инструментов виртуализации работает по тому же принципу, но не создает так сказать standalone-программы, а только незапускаемый стандартными (без центра администрирования и клиентской части) пакет. Например Symantec Altiris (есть бесплатная версия) и Citrix XenApp (малопонятная вещь), ну и решения от Microsoft (да, не удивляйтесь, но это только для корпоративщиков). Ну и оценки: (1+)(2+-)(3+-) Способы выявления. Приведу только более-менее вменяемый способ: (пкм) Свойства -> (вкл) Версия. И там уж иногда можно увидать название виртуализатора, его версию и имя владельца лицензии. Особняком от этого всего стоит способ лаунчера. Т.е. запускается не программа, а лаунчер, который прямо в памяти говорит основной программе, что куда сохранять и как себя вести. Изготовление лаунчера - процедура "из черной магии" зачастую недоступная даже самим разработчикам (Вспомните сторонний лаунчер для Opera Portable, превращающий любую версию Opera в портативную). А как же *NIXы? Хочется спросить: "А можно ли реализовать подобную упаковку для разбросанных по всему винчертеру *NIX-пакетов?" Давайте отбросим тот случай (хотя тоже можно подумать), когда необходимо компилировать из исходного кода. Теперь заглянем внуть разных пакетов программ: RPM, DEB и др. Что там лежит? Правильно сами файлы программы, информация, где они должны лежать в конечной системе и записи конфигов. А теперь думаем: "Что мешает делать не инстлаляционные файлы, а пакеты, которые по содержимому - то же самое, только является запускаемым файлом?". Вроде ничего не мешает, особенно учитывая, что хорошо настроенный Wine отлично ведется на Windows-виртуальные пакеты. Но как раз в этом словосочетании "является запускаемым файлом" и кроется подвох: в отличие от Windows-спецификации PE (Portable Executable - это почти любая EXE-шка), в *NIXе скорее можно сказать, что не программа выполняется в системе, а cистема по требованию выполняет запускаемый файл (это основа защищенности и надежности *NIX). Получается, что чтобы сделать, виртуализованную или другую портативку, прийдется обманывать не саму программу, а всю систему. Но, возможно, некоторые подобные решения появятся или уже появляются. Вот и все. Не во всем точно, но достаточно содержательно. Всем спасибо за внимание! (С) NickOn [NickOnToluca] |
|||
Похожие новости: {related-news} |
|||
![]() |
![]() |
||
Комментарии (1)
![]() |
Информация |
![]() |
Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости. |










Информация





12 ноября 2009 23:00 #