Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР 151, АВГУСТ 2011 г.

Windows 7 PORTABLE: делаем загрузочную флешку с "семеркой" на борту

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

Давно смекнув, что многие проблемы гораздо проще решать, загрузившись с Live-носителя, я стараюсь всегда иметь при себе на флешке какой-нибудь recovery-дистрибутив. Согласись, что это если не лучший, то, по крайней мере, один из удобнейших способов восстановить систему или, к примеру, расправиться с малварью (особенно если речь идет о блокираторе). Я перепробовал многое. Сперва это были системы на базе Linux, затем UBCD4Win, построенный на базе Windows XP, а потом я сделал свою собственную сборку, используя небезызвестную утилитуBart’s PE Builder. Увы, прога давно не обновляется, а, значит, в качестве список поддерживаемых систем, доступных для переноса на загрузочный носитель, остается попрежнему тем же: Windows 2000/XP/2003. Это немного огорчает: уже все успели привыкнуть к "семерке", и было бы здорово собрать свою загрузочную систему именно на базе Windows 7. Сказано — сделано.

Наш помощник — WinBuilder

В замену PeBuilder нашелся другой, совершенно замечательный инструмент — WinBuilder. Это даже не программа, а настоящий фреймворк для создания Windows PE (так называется облегченная версия ОС Windows, которая позволяет загружаться со сменного CD/DVD/USB-носителя). Для этого он извлекает нужные компоненты из дистрибутива самой системы, а также набора Windows Automated Installation Kit (WAIK) в качестве основы для системы и позволяет создавать дополнительные скрипты, с помощью которых в систему встраиваются любые сторонние утилиты.

На базе WinBuilder построено несколько проектов, вот лишь некоторые из них:

  • LiveXP — использует в качестве источника файлов Windows XP и создает систему для администраторов.
  • Win7PE — берет за основу системы дистрибутив Windows 7.
  • VistaPE-CAPI — создает сборку на основе Vista.
  • NaughtyPE — основывается на Windows XP и из коробки поддерживает воспроизведения медиа-файлов.
  • MultiPE — собирает загрузочную систему из дистрибутива Vista или Windows 7.

Мы же будем использовать Win7PE, как самый проверенный и наиболее подходящий для наших задач проект.

Что нам нужно?

Для того, чтобы собрать загрузочную систему на базе Windows 7 нам понадобится следующее:

1. Дистрибутив Windows 7 x86 или x64, желательно с уже интегрированным SP1.

2. Последняя версия WinBuilder. Он распространяется в виде небольшого exe-файла, а необходимые для работы компоненты и вспомогательные утилиты дополнительно загружает из Сети.

3. Windows Automated Installation Kit for Windows 7 (WAIK). Пакет для автоматической установки Windows весит очень немало — это образ на 1,7 Гб, который ты можешь либо выкачать ссайта Microsoft, либо взять снашего диска.

4. Driverpack’и — классные наборы драйверов, которые поддерживают огромное количество железа. На сайте доступны сборки для различных видов девайсов, нам понадобится не так много, а именно — сборники для категорий Chipset, LAN, WLAN Mass Storage driver.

Предварительные приготовления

Когда все файлы будут в нашем распоряжении, можно приступать к приготовлениям.

1. Для начала нам нужно установить Windows Automated Installation Kit for Windows 7. Записывать на болванку ISO’шник, само собой, не обязательно: можно просто распаковать файлы из KB3AIK_EN.iso и запустить StartCD.exe. В появившемся меню автозапуска выбираем Windows AIK Setup и выполняем самую стандартную установку. Весит это хозяйство много, но после того, как скрипты WinBuilder извлекут оттуда нужные файлы, WAIK можно будет удалить (имей это в виду).


Устанавливаем WAIK

2. Далее копируем файлы Windows 7 с диска или из ISO-образа в какую-нибудь директорию.

3. Размещаем загруженный WinBuilder.exe в какой-нибудь папке (например, C:\WinBuilder) — лишь бы не в директории с профайлом пользователя. И запускаем бинарник под аккаунтом администратора: иначе программа честно предупредит тебя о возможных проблемах.

4. От WinBuilder’а в чистом виде толку мало — ему необходимы сценарии и вспомогательные файлы для создания загрузочного дистрибутива. Поэтому первое, что ты увидишь после запуска — это "Download Center". Прога предложит выбрать проекты, которые необходимо скачать.

Отмечаем галочками:

  • updates.boot-land.net (это апдейты);
  • win7pe.WinBuilder.net/SE (файлы проекта Win7PE).

В левом верхнем углу можно выбрать режим загрузки (по умолчанию он выставлен в значение "Recommended"). Выбираем через меню "Complete" и начинаем загрузку файлов, нажав на кнопку "Download".

5. По какой-то причине WinBuilder не может корректно извлечь абсолютно все файлы, необходимые для создания сборки, поэтому придется поработать немного руками. Необходимо найти файл bcdedit.exe в своей системе (Windows 7) и скопировать его в C:\WinBuilder \Projects\Tools\Win7PE_SE\x86 (или C:\WinBuilder \Projects\Tools\Win7PE_SE\x64 для 64-битной системы). Туда же нужно скопировать следующие файлы:

imagex.exe
wimgapi.dll
wimmount.inf
wimmount.sys
wimserv.exe

Изначально они находятся в папке WAIK. Можно попробовать не выполнять этот шаг. У меня автоматические скрипты WinBuilder не смогли сграбить эти файлы, но возможно тебе повезет больше.

Собираем дистрибутив

Теперь, когда все необходимое для сборки у нас есть и готово к использованию, нет смысла затягивать с созданием дистрибутива. Опять же раскладываю все по пунктам.

1. Итак, в левой панели мы видим дерево проекта Win7PE SE. Нажимаем но кнопку "Source": здесь необходимо указать расположение файлов дистрибутива Windows 7. Все остальное можно оставить по умолчанию.

2. Далее необходимо подключить к созданию сборки драйверы, которые будет использовать система. Это делается в разделе "Drivers". По умолчанию здесь указан путь %GlobalTemplates%\Drivers_x86. Проще всего нажать на кнопку "Explore" и в появившуюся папку скопировать все необходимые драйвера. Просто распаковываем сюда архивы Driverpack’ов, которые мы предварительно скачали. Так как поддерживается сканирование поддиректорий, то пихать все в одну сумасшедшую кучу необязательно: смело размещай содержимое архивов "как есть".

3. Если пройтись по разделу "Tweaks", то можно дополнительно внести различные косметические настройки будущей системы. К примеру, изменить wallpaper, настроить меню "Пуск", изменить ярлычки. Все очень понятно настраивается через соответствующие опции.

4. Далее переходим в раздел "WriteMedia" и активируем режим "Copy to USB-Device", чтобы сразу разместить нашу сборку на USB-флешку, выбрав в меню нужный носитель.

5. Теперь можно нажать на кнопку "Play" и верить, что все пройдет без сучка и задоринки. Создание сборки, очевидно, занимает некоторое время: в процессе можно наблюдать, как выполняется один скрипт системы за другим (сложно представить, сколько времени ушло бы на выполнение подобной работы вручную). Соответственно, чем больше скриптов ты выбрал для выполнения, тем дольше будет возиться WinBuilder. В случае ошибки прога сообщит в чем проблема и, скорее всего, выдаст в браузере справку с возможным решение проблемы.

Эту инструкцию я составляю с учетом всех возникших у меня сложностей, поэтому ты не должен наступить на мои грабли. Все должно быть хорошо, и на выходе ты получишь файл Win7PE_x86.ISO в папке WinBuilder\ISO. 

6. Прежде чем загружать файлы на флешку, можно предварительно проверить работоспособность сборки в виртуальной машине, и здесь опять же все автоматизировано. В разделе VirtualTest можно выбрать систему виртуализации (испытание можно устроить, воспользовавшись qEmu, VirtualBox, Virtual PC, VMware). Я оставил режим по умолчанию (Best Emulation), и WinBuilder запускала получившийся образ в установленной VMWare Workstation, что меня вполне устраивало. Ты же можешь выбрать более подходящий сценарий. Можно оставить все как есть и установить в систему бесплатный и легковесный.


Проверяем сборку под VMware

7. Теперь о том, как выглядит перенос системы на флешку. Сначала WinBuilder запускает HP USB Disk Storage Format Tool — самую правильную утилиту для форматирования USB-носителей. Выбираем здесь FAT32 (если хочешь в будущем добавить возможность загрузки с флешки другой системы) или NTFS. Форматируем. После этого в игру вступает утилита Grub4Dos, у которой важное назначение — установить на флешку загрузчик. Тут необходимо: во-первых, правильно выбрать диск (так как буквы не отображаются, смотри внимательно на размер), во-вторых, выбрать в качестве значения параметра "Part List — Whole disk (MBR)" и отметить галочкой опцию Don’t search floppy. После этого остается нажать на кнопку "Install", моментально получить сообщение об установке загрузчика и, мысленно поблагодарив Gbur4Dos, закрыть его окно. Все: после этого WinBuilder оперативно перенесет все файлы на USB-носитель.

Наша загрузочная флешка с Windows 7 готова.

Тут уже грех не загрузиться с USB-носителя, чтобы убедиться, что система работает не только в виртуальном, но и в настоящем, самом обычном окружении. Но хочу сразу предупредить: это сильно урезанная вариация Windows 7, в которой оставлено минимум компонентов. Никаких тебе Aero и красивых эффектов: все это отключено. А из софта ты по умолчанию получаешь некоторые стандартные утилиты Windows (вроде regedit’а), а также несколько бонусных программ вроде PENetwork для настройки сети (в том числе беспроводного адаптера) и Opera USB для браузинга. Все это неплохо, но явно недостаточно — систему нужно снарядить.


Настройка сети

Скрипты (плагины)

Дополнительные программы, которые можно включить в состав своей сборки системы, распространяются в виде скриптов (или плагинов — так их тоже называют). Подключить их просто. Достаточно скопировать их в \WinBuilder\Projects\Win7PE_SE\Apps и потом активировать через GUI-интерфейс WinBuider. Правда, чтобы они появились в дереве скриптов, программу приходится перезапускать, хотя не исключаю, что обновить список плагинов можно как-то проще. В некоторых случаях плагин распространяется в виде единственного файла — сценария. Тут есть два варианта. Разработчик мог включить необходимые файлы прямо в этот файл, закодировав их в base64. Или же в составе скрипта никакие файлы не включены, и их нужно скопировать в папку со сценарием самому (это должно быть подробно описано в мануале плагина). Последнее особенно касается коммерческого софта (того же самого Total Commander’а), файлы которого разработчики плагинов просто не имеют права распространять.

Теперь отвечаю на наверняка возникший у тебя вопрос: "А где взять эти плагины?". Есть множество источников — например, отсюда:

К примеру, можно скачать плагин Wireshark и необходимый для его работы Winpcap (доступны отсюда). Перемещаем его в каталог Apps/Network, активируем через дерево — и у нас получается сборка с полноценным сниффером. Ссылки на некоторые полезные плагины я привел ниже:

Несмотря на то, что готовых плагинов довольно много, полезно уметь самому написать скрипт для добавления нужных программ в систему. Когда добавляешь новый скрипт через "Tools .. Create script...", WinBuilder предлагает простой шаблон скрипта. Для примера я приведу простенький сценарий, который устанавливаетSoftperfect Netscan, и поясню логику с помощью комментариев:

//Секция с информацией о добавляемом приложении
[main]
Title=NetScan
Description=Netscan from Softperfect
Selected=True
Level=5
Version=1
NoWarning=False
Download_Level=0
//Важные переменные, включая путь до исполняемого файла
[variables]
%ProgramTitle%=Netscan
%ProgramEXE%=netscan.exe
%ProgramFolder%=netscan
// Команды для установки приложения
[process]
// Копируем нужные файлы из поддиректории netscan в папке, где находится скрипт (сюда нужно предварительно перенести необходимое для работы программы)
CopyProgram,%ScriptDir%\%ProgramFolder%
//Добавляем ярлыки
Add_Shortcut,StartMenu,Netscan
Add_Shortcut,Desktop,Netscan
//Указываем DLL’ки, которые необходимы для работы программы.
WinBuilder включит их в сборку
Require_FileQ,mgmtapi.dll
Require_FileQ,msvcrt.dll
Require_FileQ,KERNEL32.dll
Require_FileQ,snmpapi.dll
Require_FileQ,USER32.dll
Require_FileQ,WS2_32.dll
Require_FileQ,wsnmp32.dll

Огромное количество скриптов доступно на форуме reboot.pro, их можно посмотреть как примеры и использовать в качестве основы. В любом случае, ничего сложного в создании своих сценариев нет. Если есть необходимость просто добавить какие-то файлы в сборку, то необязательно для этого создавать плагин. В этой ситуации поможет раздел "Components .. Additional Files", который необходим как раз для такой ситуации. Если нажать на кнопку "Directory Example", то ты увидишь структуру папок, используемых в сборке, чтобы понимать, куда именно будут добавляться файлы.

Что у нас получилось?

Насколько хорошо работает такая система? Очень хорошо! При загрузке на моем ноутбуке, сразу цепляются необходимые драйвера, в том числе для беспроводного модуля. Таким образом, у меня сразу есть выход в Сеть. Все программы, если их правильно интегрировать (то есть, выполняя все их зависимости), на ура запускаются и работают. А это и софт для восстановления системы, работы с таблицами разделов, бэкапа, редактирования реестра, а также хак-тулзы. В конце концов, что может быть удобнее в качестве вспомогательной системы, которую можно всегда брать с собой и в случае необходимости с нее загружаться?

Несколько советов

  1. Как я уже упомянул, в качестве исходного дистрибутива лучше взять образ Windows 7 с уже включенным пакетом обновления (SP1). С использованием дистрибутива, в котором сервиспака еще нет, возникли проблемы с нахождением некоторых библиотек. Хотя, оговорюсь, это некритично, потому что WinBuilder выдает конкретные способы решений проблемы.
  2. В случае каких-то проблем скрипты, как правило, выдают ошибки. Если же что-то пошло не так, но в чем именно проблема непонятно, помогут логи. Опция активируется в сценарии "Finalize .. Save log file" и включена по умолчанию. Логи WinBuilder пишет очень подробно: можно полностью изучить процесс создания сборки, проследить логику выполнения скриптов и в случае какой-то проблемы попытаться устранить ошибки.
  3. Опциональным, но очень полезным проектом являетсяwww.paraglidernc.com/WinBuilder (рекомендую его сразу выбрать для загрузки во время первого запуска WinBuilder). Он включает в себя подробнейшую инструкцию по созданию сценариев. После установки ищи его в папке Projects\Paraglider\WinBuilder.chm.
  4. Самый простой способ включить в сборку приложение — это найти ее Portable-версию (например, на сайтеportableapps.com), которая уже включает в себя все необходимые файлы для работы в "чужой" системе.
Содержание
загрузка...
Журнал Хакер #151Журнал Хакер #150Журнал Хакер #149Журнал Хакер #148Журнал Хакер #147Журнал Хакер #146Журнал Хакер #145Журнал Хакер #144Журнал Хакер #143Журнал Хакер #142Журнал Хакер #141Журнал Хакер #140Журнал Хакер #139Журнал Хакер #138Журнал Хакер #137Журнал Хакер #136Журнал Хакер #135Журнал Хакер #134Журнал Хакер #133Журнал Хакер #132Журнал Хакер #131Журнал Хакер #130Журнал Хакер #129Журнал Хакер #128Журнал Хакер #127Журнал Хакер #126Журнал Хакер #125Журнал Хакер #124Журнал Хакер #123Журнал Хакер #122Журнал Хакер #121Журнал Хакер #120Журнал Хакер #119Журнал Хакер #118Журнал Хакер #117Журнал Хакер #116Журнал Хакер #115Журнал Хакер #114Журнал Хакер #113Журнал Хакер #112Журнал Хакер #111Журнал Хакер #110Журнал Хакер #109Журнал Хакер #108Журнал Хакер #107Журнал Хакер #106Журнал Хакер #105Журнал Хакер #104Журнал Хакер #103Журнал Хакер #102Журнал Хакер #101Журнал Хакер #100Журнал Хакер #099Журнал Хакер #098Журнал Хакер #097Журнал Хакер #096Журнал Хакер #095Журнал Хакер #094Журнал Хакер #093Журнал Хакер #092Журнал Хакер #091Журнал Хакер #090Журнал Хакер #089Журнал Хакер #088Журнал Хакер #087Журнал Хакер #086Журнал Хакер #085Журнал Хакер #084Журнал Хакер #083Журнал Хакер #082Журнал Хакер #081Журнал Хакер #080Журнал Хакер #079Журнал Хакер #078Журнал Хакер #077Журнал Хакер #076Журнал Хакер #075Журнал Хакер #074Журнал Хакер #073Журнал Хакер #072Журнал Хакер #071Журнал Хакер #070Журнал Хакер #069Журнал Хакер #068Журнал Хакер #067Журнал Хакер #066Журнал Хакер #065Журнал Хакер #064Журнал Хакер #063Журнал Хакер #062Журнал Хакер #061Журнал Хакер #060Журнал Хакер #059Журнал Хакер #058Журнал Хакер #057Журнал Хакер #056Журнал Хакер #055Журнал Хакер #054Журнал Хакер #053Журнал Хакер #052Журнал Хакер #051Журнал Хакер #050Журнал Хакер #049Журнал Хакер #048Журнал Хакер #047Журнал Хакер #046Журнал Хакер #045Журнал Хакер #044Журнал Хакер #043Журнал Хакер #042Журнал Хакер #041Журнал Хакер #040Журнал Хакер #039Журнал Хакер #038Журнал Хакер #037Журнал Хакер #036Журнал Хакер #035Журнал Хакер #034Журнал Хакер #033Журнал Хакер #032Журнал Хакер #031Журнал Хакер #030Журнал Хакер #029Журнал Хакер #028Журнал Хакер #027Журнал Хакер #026Журнал Хакер #025Журнал Хакер #024Журнал Хакер #023Журнал Хакер #022Журнал Хакер #021Журнал Хакер #020Журнал Хакер #019Журнал Хакер #018Журнал Хакер #017Журнал Хакер #016Журнал Хакер #015Журнал Хакер #014Журнал Хакер #013Журнал Хакер #012Журнал Хакер #011Журнал Хакер #010Журнал Хакер #009Журнал Хакер #008Журнал Хакер #007Журнал Хакер #006Журнал Хакер #005Журнал Хакер #004Журнал Хакер #003Журнал Хакер #002Журнал Хакер #001