Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Информационная безопасность » Защита компьютерных систем » Антивирусы - Строим загрузочную флешку с Live антивирусниками своими руками.

Закрытая тема
Настройки темы
Антивирусы - Строим загрузочную флешку с Live антивирусниками своими руками.

Новый участник


Сообщения: 9
Благодарности: 2

Профиль | Отправить PM | Цитировать


Изменения
Автор: HuGe
Дата: 05-02-2012
Описание: Статья дополнена
Чтож, нам понадобится:
- утилита BOOTICE.EXE, сам пользую версию 0.8.1.0, скачать можно тут:
http://bootice.narod.ru/
- GRUB4DOS файлик grldr, взять можно тут:
http://download.gna.org/grub4dos/grub4dos-0.4.4.zip
это официальная стабильная версия.
Я использую версию grub4dos-0.4.5, тут лежит множество исполнений:
http://code.google.com/p/grub4dos-ch...downloads/list
разницы в принципе никакой решать вам
- UltraISO или ваша любимая утилита для работы с образами
- Live образы антивирусников
- собственно флешка минимум на 1 Гиг, желательно чистая, т.к. придётся форматить в FAT32 для достижения наилучших результатов.
- паяльник (нам с вами - не понадобиттся)

Скачиваем Live продукты антивирусников:
Для DrWeb понадобится liveusb версия, ибо я пока не научил его работать с эмуляции образа.
http://phillip.drweb.com/pub/drweb/l...webliveusb.exe

Для других систем подойдут и iso версии

ESET System Rescue:
http://esetsupport.ru/eset_sysrescue.iso

Kaspersky Rescuedisk:
Стабильная версия
http://rescuedisk.kaspersky-labs.com...isk/updatable/
Версия MP3 (Maintenance Pack 3) в разработке - её использую сам
http://devbuilds.kaspersky-labs.com/..._10.0.31.2.iso

Avira Antivir Rescue System:
http://www.avira.com/ru/support-down...-rescue-system

Препарируем флешку разворачиванием на неё drwebliveusb, соглашаемся с форматированием и всем остальным )))
Забрасываем в корень флешки файлик grldr из скачанного пакета GRUB4DOS.
Берём утилиту BOOTICE.EXE, прописываем в MBR флешки загрузчик GRUB4DOS (18 sectors).

читать дальше »
Возвращаемся в главное окно утилиты - нам нужна вкладка Utitlities, переходим туда, открываем Start Menu Editor, вверху нам предлагают выбрать файл GRLDR либо MENU.LST нажимаем browse и указываем наш файл grldr, лежащий в корне препарируемой флешки. Видим текст... нас интересует 2-я строка
Код: Выделить весь код
configfile
меняем её на
Код: Выделить весь код
configfile /boot/grub/menu.lst || configfile /BOOT/GRUB/MENU.LST
И сохраняем изменения в той же кодировке которая отображена в окошке Current Encoding

Для чего это: по дефалту GRLDR ищет конфигурационный файл menu.lst в корне раздела, если не находит его там, то открывает свой внутренний menu.lst уже с помощью которого используя первый (дефолтный) пункт меню, ищет его в папках /boot/grub/ и /grub/, длительность таймаута до выбора дефолтного пункта - 1 секунда, меньше только 0, который означает бесконечность, а значит, что на протяжении 1-й секунды мы будем лицезреть голое 4-х строчное меню, а только после загрузится наше, спрятанное в /boot/grub/, кстати, регистр букв имеет значение, рекомендую пользоваться строчными. Вы скажете зачем оно мне, прятать куда-то menu.lst, пусть лежит себе в корне. Чтож ваше дело, но т.к. флеш-девайс планируется мультизагрузочным то постараемся по максимуму убрать всякие лишние файлы из корня, тем более что, папка /boot уже создана при разворачивании DrWeb, а создавая в ней подпапку grub достигается дополнительная изоляция файлов меню. Если всё это не нужно, то пропускаем всё от текста "...(18 sectors)." и до следующего дуба )))


Чтоже, потихоньку нужно строить файл menu.lst, начнём с уже присутствующего DrWeb.
Найдём на флешке файлик \boot\syslinux\syslinux.cfg
там будет много буковок...найдём примерно такие:
Код: Выделить весь код
label Dr.Web LiveCD (Default)
  kernel /boot/vmlinuz
  append ID={uniqueID} root=/dev/ram0 init=/linuxrc init_opts=4 quiet initrd=/boot/initrd vga=791 splash=silent,theme:drweb CONSOLE=/dev/tty1
это и есть запуск DrWeb в дефолтном графическом режиме на буржуйском языке. Чуть ниже (следующим пунктом) идёт продвинутый режим в котором можно поменять язык, и выглядит примерно так:
Код: Выделить весь код
label Dr.Web LiveCD (Advanced)
  kernel /boot/vmlinuz
  append ID={uniqueID} root=/dev/ram0 init=/linuxrc init_opts=3 quiet initrd=/boot/initrd CONSOLE=/dev/tty1
Теперь о главном: "{uniqueID}" это уникальный ID сборки (ну Live модуля всмысле), он дублируется в файле \boot\config в строке:
Код: Выделить весь код
export BOOT_ID={uniqueID}
т.е. соответственно они должны быть одинаковы в \boot\syslinux\syslinux.cfg и \boot\config (вдруг у вас не так, значит вы скачали 2 сборки и умудрились их скрестить при закачке и установке. шучу)

Теперь напишем всё это в наш menu.lst (место которому было определено выше, и хранить его нужно в кодировке UTF-8)
Получится должно где-то так:
Код: Выделить весь код
title Dr.Web LiveCD (Default)
kernel /boot/vmlinuz append ID={uniqueID} root=/dev/ram0 init=/linuxrc init_opts=4 quiet vga=791 splash=silent,theme:drweb CONSOLE=/dev/tty1
initrd=/boot/initrd

title Dr.Web LiveCD (Advanced)
kernel /boot/vmlinuz append ID={uniqueID} root=/dev/ram0 init=/linuxrc init_opts=3 quiet CONSOLE=/dev/tty1
initrd=/boot/initrd
Хотим проверяем, не хотим едем дальше.

Дальше будем играться с образами дисков, причём оригинальные образы не выбрасываем, оттуда понадобятся ещё файлы.

Открываем eset_sysrescue.iso, там 2 папки: boot и sysrescue, выбрасываем папку sysrescue, оставляем только папку boot, сохраняем образ как-то поудобнее, ну например eset-boot.iso, ложить на флешку его можно куда угодно, в корень или в любую папку, запихнём его к примеру в папку iso. Теперь нужно положить и сам антивирусный модуль, из оригинального образа берём папку sysrescue и забрасываем её прямо в корень нашей флехи со всеми внутренностями... Порядок, запишем всё это дело в наш menu.lst:

Код: Выделить весь код
title ESET Sysrescue
map /iso/eset-boot.iso (0xFF) || map --mem /iso/eset-boot.iso (0xFF)
map --hook
root (0xff)
chainloader (0xFF)
есть один нюанс:
Код: Выделить весь код
map /iso/eset-boot.iso (0xFF) || map --mem /iso/eset-boot.iso (0xFF)
это, загрузит наш образ полностью в память, да он в принципе небольшой, около 7-ми метров, можно этого избежать и сэкономить эти 7 метров и время на загрузку, использовав команду:
Код: Выделить весь код
map /iso/eset-boot.iso (0xFF)
без
Код: Выделить весь код
 || map --mem /iso/eset-boot.iso (0xFF)
в таком случае образ не будет грузится в память а произойдёт прямой маппинг с диска (USB-девайса), однако этот метод работает только с нефрагментированными файлами (non contiguous), утилиты которые могут помочь в этом нелёгком деле называются WinContig, contig, и ещё есть хорошая тулза от Piriform называется Defraggler, он не раз меня выручал.
Как будете делать вы, это ваше дело. Тут всё зависит от размера образа, кол-ва оперативки на машине, возможностью достигнуть нефрагментированности файла.
Здесь, в примерах, я приведу всё с использованием маппинга в память, как указано с ESET Sysrescue.

Тестим или едем...
Следующий на очереди Kaspersky Rescuedisk, с ним поступаем точно также оставив в образе только папку boot, а всё остальное вывалив в корень флешки, сохраним наш загрузочный образ например kav-boot.iso и положим рядом с eset-boot.iso в папку iso. Отметим сие событие в нашем menu.lst такими строками:
Код: Выделить весь код
title Kaspersky Rescue Disk
map /iso/kav-boot.iso (0xFF) || map --mem /iso/kav-boot.iso (0xFF)
map --hook
root (0xff)
chainloader (0xFF)
Ещё один моментик, для работы Kaspersky Rescuedisk, метка флешки должна быть KRD10, как это изменить читаем далее...

К завтрашнему утру обещаю рассказать как научить Касперского самостоятельно соглашаться со своим лицензионным соглашением, и как прикрутить в этот комплект Avira Antivir Rescue System.

Как и обещал, сегодня продолжим наши эксперименты с девайсом.
Закончим препарирование Kaspersky Rescuedisk:

Открываем образ с нашей флешки, \iso\kav-boot.iso. Находим в нём файлик boot\grub\grub.cfg, видим примерно следующее:
читать дальше »
Код: Выделить весь код
set default=0
set timeout=10

load_env
source ${kav_cfg_path}/bg.cfg
set lang=ru
source ${kav_cfg_path}/bg.cfg

echo -n "Press any key to enter the menu... "
if sleep --verbose --interruptible ${timeout} ; then
 set timeout=0
 set boot_from_hard="true"
 set lang_menu=""
else
 set timeout=-1
 set default=1
 set lang_menu="true"
 set boot_from_hard=""
fi

if [ -n "${boot_from_hard}" ] ; then
	source ${kav_cfg_path}/en.cfg
	source ${kav_cfg_path}/boot_from_hard.cfg
fi

if [ -n "${lang_menu}" ] ; then
	source ${kav_cfg_path}/lang_menu.cfg
fi

Это родное загрузочное меню с передачей параметров из других конфиг файлов, во замудрил....
Сохраним этот файлик где нибудь, чтобы внести в него изменения и положить обратно в образ на то же место.

Так, следующим будет файл boot\grub\cfg\kav_menu.cfg, напомню - это всё мы ищем в образе \iso\kav-boot.iso, текст файла примерно следующий:
читать дальше »
Код: Выделить весь код
set default=0
set timeout=-1

load_env
source ${kav_cfg_path}/bg.cfg

menuentry "${kav}" {
	linux /boot/rescue root=live:CDLABEL=KRD10 rootfstype=auto vga=791 init=/init initrd=rescue.igz kav_lang=${kav_lang} udev liveimg splash quiet doscsi nomodeset
	initrd /boot/rescue.igz
}

menuentry "${kav_rescue_text}" {
	linux /boot/rescue root=live:CDLABEL=KRD10 rootfstype=auto vga=791 init=/init initrd=rescue.igz kav_lang=${kav_lang} udev liveimg quiet nox kavshell noresume doscsi nomodeset
	initrd /boot/rescue.igz
}

menuentry "${hardware_info}" {
	linux /boot/rescue root=live:CDLABEL=KRD10 rootfstype=auto vga=791 init=/init initrd=rescue.igz kav_lang=${kav_lang} udev liveimg quiet softlevel=boot nox hwinfo noresume doscsi nomodeset
	initrd /boot/rescue.igz
}

source ${kav_cfg_path}/boot_from_hard.cfg

Открываем файл на редактирование (сохранять необязательно, внесём всё на лету)

Вкратце о метке флешки:
в параметрах загрузки ядра Каспера присутствует следующее: CDLABEL=KRD10, а это значит, что Каспер будет искать среди всех монтируемых разделов, раздел с меткой KRD10 на котором расположены все модули Rescuedisk, но вот если мы не хотим присваивать флешке такую метку, то самое время поменять её сейчас, например флешка будет носить гордое имя ANTIVIRLIVE, значит меняем все параметры соответственно на CDLABEL=ANTIVIRLIVE.

Далее, параметр set timeout=-1 подразумевает ожидание выбора пункта загрузки пользователем(бесконечное), если мы точно знаем что почти всегда будем использовать графический режим set default=0 (1-й пункт из меню), то можно попросить нас подождать к примеру секунды 3, а потом самостоятельно выбрать пункт 1 (set default=0), тогда параметр таймаута изменим на такой: set timeout=3
Теперь копируем весь изменённный текст из открытого нами файла boot\grub\cfg\kav_menu.cfg, и заменяем им весь текст в предварительно сохранённой копии boot\grub\grub.cfg. В итоге наша копия boot\grub\grub.cfg примет следующий вид (изменения выделены жирным курсивом):
читать дальше »
Код: Выделить весь код
set default=0
set timeout=3

load_env
source ${kav_cfg_path}/bg.cfg

menuentry "${kav}" {
	linux /boot/rescue root=live:CDLABEL=ANTIVIRLIVE rootfstype=auto vga=791 init=/init initrd=rescue.igz kav_lang=${kav_lang} udev liveimg splash quiet doscsi nomodeset
	initrd /boot/rescue.igz
}

menuentry "${kav_rescue_text}" {
	linux /boot/rescue root=live:CDLABEL=ANTIVIRLIVE rootfstype=auto vga=791 init=/init initrd=rescue.igz kav_lang=${kav_lang} udev liveimg quiet nox kavshell noresume doscsi nomodeset
	initrd /boot/rescue.igz
}

menuentry "${hardware_info}" {
	linux /boot/rescue root=live:CDLABEL=ANTIVIRLIVE rootfstype=auto vga=791 init=/init initrd=rescue.igz kav_lang=${kav_lang} udev liveimg quiet softlevel=boot nox hwinfo noresume doscsi nomodeset
	initrd /boot/rescue.igz
}

source ${kav_cfg_path}/boot_from_hard.cfg
.
Копия boot\grub\grub.cfg остаётся открытой, работаем с ней регулярно.

Так как мы практически уверены в том что работать будем на руском языке, и согласны с лицензионным соглашением на все 100%, осталось внести ещё немного поправок.
Обратим внимание на параметр ядра kav_lang=${kav_lang}, это язык локализации переданный где-то там через параметры, но нам всё равно нужен русский, смело пишем следующее: kav_lang=ru.

Дальше, открываем файл boot\grub\cfg\ru.cfg, это русские параметры для наших переменных из меню:
читать дальше »
Код: Выделить весь код
set reboot="Перезагрузка компьютера"
set halt="Выключение компьютера"
set boot_from_hard="Загрузка с жесткого диска"
set kav="Kaspersky Rescue Disk. Графический режим"
set kav_rescue_text="Kaspersky Rescue Disk. Текстовый режим"
set hardware_info="Информация об оборудовании"

Отсюда нам нужно 3 из них:
Код: Выделить весь код
${kav}
${kav_rescue_text}
${hardware_info}
Смело заменяем наши переменные в копии boot\grub\grub.cfg на готовые значения, получаем следующее:
читать дальше »
Код: Выделить весь код
set default=0
set timeout=3

load_env
source ${kav_cfg_path}/bg.cfg

menuentry "Kaspersky Rescue Disk. Графический режим" {
	linux /boot/rescue root=live:CDLABEL=ANTIVIRLIVE rootfstype=auto vga=791 init=/init initrd=rescue.igz kav_lang=ru udev liveimg splash quiet doscsi nomodeset
	initrd /boot/rescue.igz
}

menuentry "Kaspersky Rescue Disk. Текстовый режим" {
	linux /boot/rescue root=live:CDLABEL=ANTIVIRLIVE rootfstype=auto vga=791 init=/init initrd=rescue.igz kav_lang=ru udev liveimg quiet nox kavshell noresume doscsi nomodeset
	initrd /boot/rescue.igz
}

menuentry "Информация об оборудовании" {
	linux /boot/rescue root=live:CDLABEL=ANTIVIRLIVE rootfstype=auto vga=791 init=/init initrd=rescue.igz kav_lang=ru udev liveimg quiet softlevel=boot nox hwinfo noresume doscsi nomodeset
	initrd /boot/rescue.igz
}

source ${kav_cfg_path}/boot_from_hard.cfg


Также по аналогии работаем с файлом boot\grub\cfg\boot_from_hard.cfg, заменяем переменные на значения, в итоге вместо строки
source ${kav_cfg_path}/boot_from_hard.cfg вносим нижеуказанные строки в нашу копию boot\grub\grub.cfg:

Код: Выделить весь код
menuentry "Загрузка с жесткого диска" {
	set root='(hd0)'
	chainloader +1
}

menuentry "Перезагрузка компьютера" {
	reboot
}

menuentry "Выключение компьютера" {
	halt
}
Конечный файл boot\grub\grub.cfg должен выглядеть примерно следующим образом:
читать дальше »
Код: Выделить весь код
set default=0
set timeout=3

load_env
source ${kav_cfg_path}/bg.cfg

menuentry "Kaspersky Rescue Disk. Графический режим" {
	linux /boot/rescue root=live:CDLABEL=ANTIVIRLIVE rootfstype=auto vga=791 init=/init initrd=rescue.igz kav_lang=ru udev liveimg splash quiet doscsi nomodeset
	initrd /boot/rescue.igz
}

menuentry "Kaspersky Rescue Disk. Текстовый режим" {
	linux /boot/rescue root=live:CDLABEL=ANTIVIRLIVE rootfstype=auto vga=791 init=/init initrd=rescue.igz kav_lang=ru udev liveimg quiet nox kavshell noresume doscsi nomodeset
	initrd /boot/rescue.igz
}

menuentry "Информация об оборудовании" {
	linux /boot/rescue root=live:CDLABEL=ANTIVIRLIVE rootfstype=auto vga=791 init=/init initrd=rescue.igz kav_lang=ru udev liveimg quiet softlevel=boot nox hwinfo noresume doscsi nomodeset
	initrd /boot/rescue.igz
}

menuentry "Загрузка с жесткого диска" {
	set root='(hd0)'
	chainloader +1
}

menuentry "Перезагрузка компьютера" {
	reboot
}

menuentry "Выключение компьютера" {
	halt
}

Сохраняем его в кодировке UTF-8, пользователи редактора Akelpad снимают галочку с пункта BOM в диалоговом окне сохранения и ложим обратно в образ на место по адресу boot\grub\grub.cfg, подтверждаем замену, сохраняем образ.

Фух, и что мы тут натворили...
Мы научили Каспера дружить с именем нашей флешки (или наоборот ), также он теперь не помнит что нам нужно показывать лицензионное соглашение (он заведомо знает что мы с ним согласны), ну и автоматизировали запуск графического режима RescueDisk сразу на русском языке.

Насчёт Авиры: образ подготавливается по аналогии ESET и Каспера, только папка boot там вывернута в корень, все остальные папки выкладываются в корень нашей флешки. Запуск можно производить сразу из menu.lst, или конечно же с образа. Сил сейчас уже нет, опишу в следующий раз.
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:47, 04-02-2012

 

Аватара для iskander-k

скептик-оптимист


Moderator


Сообщения: 5709
Благодарности: 1113

Профиль | Отправить PM | Цитировать


Цитата HuGe:
блаблабла »
Вместо этого напишите удобно читаемое и понятное всем пояснение, слова и т.д.

Приведите тему в порядок !
иначе будет закрыта.

-------
Мягкий и пушистый - если не гладить против шерсти.




Вам помог совет? Нажмите на ссылку Полезное сообщение .


Отправлено: 20:21, 04-02-2012 | #2



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

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


Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата:
также он теперь не помнит что нам нужно показывать лицензионное соглашение (он заведомо знает что мы с ним согласны)
Перечитал трижды и не нашел описание действий для достижения этого результата.
Лиц. соглашение всё также показывается при полной загрузке.
В остальном полный порядок.

HuGe Вы видимо просто упустили разъяснение этого момента, если да, то потрудитесь выполнить это пожалуйста, т.к. это довольно важный момент.

Статья помогла в некоторых вопросах, за что и благодарен.

И еще вопрос:
Почему форматировать нужно именно в FAT32? У меня, например, USB HDD отформатированный в NTFS и всё, за исключением DR. Web (просто еще не скачал его LiveUSB, а образ LiveCD так и не заставил работать, хотя и перечитал немало по этому вопросу), работает нормально.

И еще LiveCD Eset'a в графическом режиме зависает при старте иксов, при этом, если загрузится сначала в текстовый режим, а далее вручную прописать старт иксов (команда "startx"), то старт проходит без неудрядиц.
Об этом пишут, что возможно такое происходит на некоторых видеокартах (у меня ноутбук с видекартой ATI).
Если кто-нибудь знает как заставить работать графический режим сразу после выбора его из меню, то поделитесь своими знаниями пожалуйста.

Последний раз редактировалось sakhalines, 10-04-2012 в 00:37.


Отправлено: 23:52, 09-04-2012 | #3


Новый участник


Сообщения: 9
Благодарности: 2

Профиль | Отправить PM | Цитировать


sakhalines, по касперу: по сути нужен последний спойлер:
Цитата:
Конечный файл boot\grub\grub.cfg должен выглядеть примерно следующим образом:
читать дальше »
На самом деле под каждым спойлером описано действие и к чему оно приводит.
Но я почему-то подозреваю, что в последнем релизе Kaspersky Rescue Disk MP3 это может не помочь, сам использовал на тот момент версию 10.0.30.21, и пока не добрался до новой версии, хотя баги с обновлением баз уже проявляются... дойдут руки пересмотрю...

Насчёт FAT32 - могут быть траблы с работой Dr.Web на NTFS.

Насчёт ESET - множество отзывов, даже говорят что при запуске требует ввести какой-то ключ, лично у меня не стартанул на одной древней машинке.

Пасиб за отзыв.

Отправлено: 06:32, 10-04-2012 | #4


Аватара для mskam

Пользователь


Сообщения: 94
Благодарности: 3

Профиль | Отправить PM | Цитировать


Цитата:
Дальше будем играться с образами дисков, причём оригинальные образы не выбрасываем, оттуда понадобятся ещё файлы.

Открываем eset_sysrescue.iso, там 2 папки: boot и sysrescue, выбрасываем папку sysrescue, оставляем только папку boot, сохраняем образ как-то поудобнее, ну например eset-boot.iso, ложить на флешку его можно куда угодно, в корень или в любую папку, запихнём его к примеру в папку iso. Теперь нужно положить и сам антивирусный модуль, из оригинального образа берём папку sysrescue и забрасываем её прямо в корень нашей флехи со всеми внутренностями... Порядок, запишем всё это дело в наш menu.lst:

Код:

title ESET Sysrescue
map /iso/eset-boot.iso (0xFF) || map --mem /iso/eset-boot.iso (0xFF)
map --hook
root (0xff)
chainloader (0xFF)
так не работает


я сделал так:


На флешке папка eset, внутри образ eset.iso и файл для сохранения настроек save.dat (файл этот можно взять в образе, в папке sysrescue архив slaxsave.zip, внутри архива еще 4 архива save256.zip, save512.zip и т.д. в каждом архиве файл save.dat разных размеров. Я выбрал файл на 512мб, для обновлений достаточно)

menu.lst:

Код: Выделить весь код
title Eset Sysrescue
map /eset/eset.iso (0xff) || map --mem /eset/eset.iso (0xff)  
map --hook  
root (0xff)  
kernel /boot/vmlinuz from=/eset/eset.iso ramdisk_size=6666 root=/dev/ram0 rw autoexec=telinit~4 changes=/eset/save.dat
initrd /boot/initrd.gz

Отправлено: 18:18, 02-08-2013 | #5



Компьютерный форум OSzone.net » Информационная безопасность » Защита компьютерных систем » Антивирусы - Строим загрузочную флешку с Live антивирусниками своими руками.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Прочее - MX backUP своими руками. merdzd Microsoft Exchange Server 5 22-07-2010 19:14
Комп своими руками ddfwefwefweq Выбор отдельных компонентов компьютера и конфигурации в целом 2 04-03-2009 19:50
ФТП своими руками... Ronald Microsoft Windows 2000/XP 7 10-01-2007 13:35
Загрузочный CD своими руками Kenobi Хочу все знать 1 09-10-2005 11:21
TTimer своими руками Zur0 Программирование и базы данных 5 27-04-2003 18:17




 
Переход