41995

Дослідження структури та складових BІOS (Base Іnput Output System)

Лабораторная работа

Информатика, кибернетика и программирование

Мета роботи: розглянути складові частини BIOS з допомогою яких створюється парольний захист комп'ютера и визначити методи погроз та атак на паролі BIOS.exe програма для перепрограмування BIOS з можливістю зберігання змісту існуючого у файл.exe програма для розпаковки головного модуля BIOS із файлу створеного з допомогою wdflsh.exe та редагування його змісту в тому числі і інструментального паролю BIOS а також отримати новий двійковий файл для перепрограмування BIOS.

Украинкский

2013-10-26

68.5 KB

11 чел.

Лабораторна робота № 2

Дослідження структури та складових BІOS

(Base Іnput Output System).

Мета роботи: розглянути складові частини BIOS, з допомогою яких створюється парольний захист комп'ютера, и визначити методи погроз та атак на паролі BIOS.

Кількість годин на виконання  4

Години на самостійну роботу —  3

Вимоги до лабораторної бази та перелік необхідного програмного забезпечення

 Для проведення лабораторних досліджень необхідна ПЕОМ класу IBM PC з наступної мінімальної конфігурацією:

  •  процесор –  300 МГц;
  •  ОЗП – 64 МБ;
  •  HDD 10 ГБ; 
  •  Відео карта – 16 МБ.

На комп'ютері має бути встановлена операційна система (ОС)  WINDOWS будь якої версії, хоча можливо виконання роботи в середовищі ОС MS-DOS.

Додаткове прикладне програмне забезпечення:

  •  "Awdflash.exe" – програма для перепрограмування BIOS з можливістю зберігання змісту існуючого у файл.
  •  "Modbin.exe" – програма для розпаковки головного модуля BIOS із файлу, створеного з допомогою Awdflash.exe, та редагування його змісту, в тому числі і інструментального паролю BIOS, а також отримати новий двійковий файл для перепрограмування BIOS. Для можливості редагування різних модифікацій BIOS надаються декілька  програми Modbin.exe:

Modbin60.exe, Modbin66.exe, Modbin80.exe, Modbin6.exe та  Modbin61.exe. 

  •  "Cbrom.exe" - програма, що надає можливість отримати інформацію про зміст та модулі запакованого файлу BIOS.
  •  "Hiew.exe" – програма - viewer, що дозволяє продивіться зміст окремого файлу з можливістю пошуку за контекстом або адресом.
  •  "Завантажувальна" дискета операційної системи MS-DOS або Windows9x.

Усі програми не потребують попередньої інсталяції, але програма Awdflash.exe коректно працює лише при завантаженні операційної системи MS-DOS або Windows9x.

Теоретичні відомості

Розглянемо основні частини BIOS. Він складається із двох головних частин:

1. BootBlock.

У його функцію входят самі перши кроки по ініціалізації регистров чипсета та розпаковки  головної частини у память для послідуючого виконання. При неспівпаденні підрахованої контрольної суми BIOS він (bootblock) запускає програму аварійної відбудови BIOS (з дисковода).

2. Основная часть.

Главный исполняемый код. Состоит из нескольких «модулей» и хранится в запакованном виде как архив LHA с немного изменёнными заголовками (не принципиально для нас). Как правило, используются следующие названия для составных частей (модулей) этого «архива» (детально можно посмотреть с помощью утилиты cbrom):

  1.  original.tmp – главная часть, всегда размером 128k, она нас и интересует. Именно в ней происходит вся инициализация компьютера, в ней же подпрограмма BIOS Setup
  2.  awardext.rom – «расширение» главной части, в т.ч. в нём подпрограмма вывода конфигурации компьютера - табличка, появляющаяся сразу же перед «Starting Windows (DOS, linux и т.д.) …»
  3.  awardepa.bin – «картинка» Energy Star

Другие встречающиеся части:

  1.  cpucode.bin – таблица микрокодов для Intel-процессоров (PPro, P2/P3/P4, Celeron)
  2.  acpitbl.bin – подпрограмма поддержки ACPI

Так же, бывает, попадаются всякие VGA.rom (при интегрированном видео), logo.bin и др., что есть либо не принципиально, либо банально-понятно. Названия могут меняться производителем, но по смыслу- размеру-названию всегда можно догадаться.

Как теперь стало понятно, «просто» редактировать биос нельзя, т.к. это архив. Поэтому, если мы хотим что-то изменить – сначала надо распаковать нужную часть, исправить, что нужно и запаковать обратно. «Главная» часть, как уже говорилось, это original.tmp. Его и будем править.

Способ 1.

Берём modbin, открываем в нём нужный файл биоса (прошивки, которую будем править). modbin создаёт два временных файла – bios.rom и original.tmp. bios.rom – это просто копия открытого файла, а вот original.tmp – это и есть уже распакованный наш «главный» модуль (см. выше). Т.е. распаковка – просто.

Если мы выберем в modbin верхний пункт «Update File», то «временный» файл original.tmp запаковывается назад в файл биоса. Напрашивается простое решение: если это сделать (открыть файл биоса в modbin) из-под винды, а потом просто переключиться по Alt-Tab в любой другой файлменеджер (VC, Explorer, Far и т.п.) – то у нас появится возможность внести любые изменения в original.tmp. Сделав, что нужно, переключаемся назад в modbin и тискаем “update”. modbin берёт исправленный нами original.tmp и сам запаковывает его в биос. Всё – радуемся. (Особенно, ежели после перешивки исправленная версия заработает:)

Однако описанный способ имеет важный недостаток – он не позволяет исправлять второй сегмент, т.е. можно менять лишь первые 64k00000-0FFFFh. Просто во вторых 64k лежат изменяемые модбином всякие регистры, потому он вторые 64k заменяет «своими», и все изменения по адресам 10000-1FFFFh игнорируются.

Этого недостатка лишён второй способ. Кроме этого, в отличие от первого, здесь всё делается под «голым» ДОСом, а также можно распаковать и изменить любой «модуль».

Способ 2

Придётся чуть более подробно поговорить о структуре биос. Как было сказано выше, биос представляет собой архив. Но правильнее и точнее – это последовательность заархивированных с помощью LHA файлов с bootblock-ом в конце. Он (bootblock), конечно же, не заархивирован, т.к. именно он и распаковывает все эти «модули» в оперативную память. В применении к конкретными адресам структура примерно такова:

 Таблица 1. Структура и адреса для 1Mbit-ного (128kB) биоса.

00000 – xxxxx+1

Файл запакованного original.tmp плюс один байт («дополнительного» CRC)

xxxxx+1 – yyyyy

Cразу же дальше (т.е. без разрыва) идёт файл следующего запакованного модуля, например, awardext.rom (на конце уже никаких «дополнительных» байтов)

yyyyy – zzzzz

Дальше (также без разрыва) – следующий. И так все имеющиеся в конкретном биосе модули

zzzzz - ~17FFEh*

Свободное место, обычно заполняется «00» или «FF»

~1C000* – 1FFFFh

Бутблок

* - адреса могут отличаться, т.к. бывают прошивки с разными по величине бутблоками.

Теперь о том, что представляет собой заголовок LHA-архива. Мы не будем вникать в подробности, а лишь отметим те моменты, которые нам помогут точно определить его начало (ведь все «модули» идут друг за другом «без пробелов»). Зная адрес начала каждого модуля, мы будем знать, соответственно и его конец. Начало любого файла, заархивированного с помощью LHA, выглядит примерно так:"%·- lh5...". Главный и постоянный отличительный признак здесь – “lh5”, эти три символа присутствует всегда. Три символа левей “lh5” – и есть начало. Т.е. просто введя несколько раз подряд поиск “lh5” мы запросто вычислим вышеуказанные xxxxx+1 (отнимая тройку от адреса найденного “lh5”), yyyyy, zzzzz…

Если записать найденные куски кода в файлы, дать им расширение “*.lha”, то с помощью LHA (или любого другого «современного» архиватора) сможем их разархивировать и получить нужные нам файлы для просмотра/правки.

Мы рассмотрели алгоритм замены для 1Mbit-ных (128kB) биосов. Для 2Mbit- ных всё ещё проще, т.к. original.tmp лежит отдельно от других модулей:

Прошивальщики.

Самыми популярными являются Awdflash, AMIflash и Uniflash. Остальные являются специфичными для конкретной фирмы (например, для "родных" матерей от Intel либо Asus - свой, ибо другие могут не сработать).

ВНИМАНИЕ: запуск флэшера БЕЗ КЛЮЧЕЙ ключей (т.е., соответственно, с оными по умолчанию) может привести к ПОВРЕЖДЕНИЮ BIOS, даже если Вы не собирались его перепрограммировать.

AWDFLASH. Самый популярный, но не самый лучший. Запускать с ключиками:

awdflash имя_прошивки /cd/cp/py/sn/f/r

В этом случае биос перешьётся без лишних вопросов (/py - Program=Y, /sn - Save=No, /f - не проверять от той ли платы это биос и биос ли это вообще:) и после окончания прошивки комп сразу перезагрузится (ключик /r - Reset, ежели не нужно - не писать). Ключи /cd/cp (Clear DMI, Clear PNP) настоятельно рекомендуются к ним можно добавить автоматический сброс CMOS (по умолчанию) - /cc.

Контрольные вопросы:

  1.  Назовите основные модули программы BIOS.
  2.  В чем различие размещения модуля original в версих BIOS AWARD 4.5xPG и AWARD 6.xPG?
  3.  Какие модули BIOS размещаются в нем в незапакованном виде и почему?
  4.  Поясните, почему затруднительно корректно просмотреть содержимое BIOS из среды WINDOWS?
  5.  Каким режимы просмотра в программе HIEW.EXE Вы знаете?
  6.  Почему при поиске начала модуля необходимо искать последовательность символов "lh5" ?
  7.  Как осуществить поиск по известному адресу в программе HIEW.EXE?
  8.  Какие еще параметры BIOS можно отредактировать программой MODBIN.EXE ?

Порядок выполнения лабораторной работы № 2

1. С помощью программы  AWDFLASH.EXE получить BIOS, запакованный в файл. Для этого необходимо:

а) загрузиться с системной дискеты MS-DOS или WIN9x;

б) запустить программу Awdflash.exe и не указывать имя программы, с которой может загрузиться новое содержимое BIOS: на сообщение "File Name to Program" просто нажать клавишу "Enter";

в) подтвердить необходимость сохранения прежнего содержимого BIOS в файл: на сообщение "Do You Want To Save Bios (Y/N)" необходимо нажать клавишу "Y";

г) указать имя файла, в который запишется содержимое BIOS: после сообщения "File Name to Save" ввести имя файла с расширением ‘bin’ и нажать клавишу "Enter".

2. Оценить объем полученного файла и отнести его к соответствующей категории (1Mbit, 2Mbit и т.д.).

3. Исследовать структуру файла BIOS с помощью программы HIEW.EXE. Для этого:

а) загрузить в среде WINDOWS HIEW.EXE и в нем в списке выбрать файл, содержащий запакованный BIOS;

б) перевести просмотр в режим шестнадцатиричного кода, для чего нажать клавишу "F4" (Mode) и затем выбрать в появившемся списке вариант "Hex";

в) включить режим поиска (клавиша "F7" – Search) и указать в качестве контекста для поиска в верхнем поле для ASCII-кодов символы "lh5", нажать клавишу "Enter";

г) после нахождения в тексте заданного сочетания символов курсор остановится на первом из найденных символов (символе "l"), который является четвертым от начала соответствующего модуля BIOS;

д) переместить курсор на три символа влево от места остановки при поиске и определить адрес данного байта;

е) прочесть название модуля, которое должно находиться в начале модуля;

з) занести адрес и название модуля в таблицу;

и) переместить курсор на название модуля и нажатием сочетания клавиш "Ctrl+F7" продолжить поиск по тому же контексту, повторив при его нахождении пункты г) – з);

к) если при поиске будет выведено сообщение  "Target not found", то это означает, что больше подобных сочетаний символов в тексте нет;

л) продолжить просмотр содержимого файла с BIOS пролистывая его клавишей "PgDn" или с помощью контекстного поиска и определить адреса начала блоков с названиями "Award Decompression Bios" и "Award BootBlock Bios", также занести данные об адресах данных блоков в таблицу;

м) повторить пункты а) – л) для всех предоставленных файлов BIOS и получить таблицу вида:

Версия BIOS 1,

дата его разработки

Версия BIOS 2,

дата его разработки

.  .  .

Версия BIOS N,

дата его разработки

адрес  — название модуля

адрес  — название модуля

.  .  .

адрес  — название модуля

адрес  — название модуля

адрес  — название модуля

.  .  .

адрес  — название модуля

.  .  .

.  .  .

.  .  .

.  .  .

адрес  — название модуля

адрес  — название модуля

.  .  .

адрес  — название модуля

3. Выбрать версию программы распаковки BIOS MODBIN.EXE в соотвествии с емкостью микросхемы BIOS, определенной в п. 2:

  •  для 1Mbit (AWARD 4.5xPG) – MODBIN60.EXE, MODBIN66.EXE или MODBIN80.EXE;
  •  для 2Mbit (AWARD 6.xPG) – MODBIN6.EXE или MODBIN61.EXE;

4. Выполнить распаковку основного модуля "original" из файла с BIOS с помощью соответствующей версии программы MODBIN.EXE. Для этого необходимо:

а) загрузить соотвествующую версию программу MODBIN.EXE;

б) в ней выбрать для загрузки соотвествующий файл с расширением "*.BIN";

в) выйти из программы с помощью клавиши "ESC", после чего файл с названием  "original.tmp" или "original.bin" будет находиться в том же каталоге, что и файлы с запакованным BIOS;

г) измените название данного файла, например, на "orig-old.bin";

д) просмотрите его содержимое с помощью программы HIEW.EXE (см. п. 3а, 3б) в области размещения инструментального пароля BIOS, начиная с адреса 1ЕС60, куда можно переместиться с помощью клавиши "PgDn"или воспользовавшись клавишей "F5 -Goto" с указанием нужного для перемещения адреса;

е) запишите содержимое восьми байтов инструментального пароля в протокол;

ж) снова загрузите соответствующую версию программы MODBIN.EXE и подгрузите в нее тот же, что и в пункте б) файл с запакованным BIOS.

з) выполните корректировку инструментального пароля с помощью соотвествующего пункта меню:

для AWARD 6xPG

1) перемещаться по пунктам меню следующим образом:

"Change BIOS Option"<"ENTER"> — "BIOS Option"<"ENTER"> — "Security Default Password"<"ENTER">  Ввести новый инструментальный пароль <"ENTER">;

2) с помощью нескольких нажатий клавиши"ESC" возвращаемся в главное меню;

3) выбираем нажатием  клавиши "ENTER" пункт меню "File", а затем "Save BIOS" и, наконец, указываем имя файла, содержащего скорректированную программу BIOS;

для AWARD 4.5xPG

1) выбираем пункт меню "Change BIOS Option"<"ENTER"> — "Security Default Password"  Ввести новый инструментальный пароль <"ENTER">;

2) еще одним нажатием клавиши "ENTER" возвращаемся в главное меню программы;

3) с помощью пункта "Update File" записываем обновленный BIOS в файл вместо прежнего содержимого.

г) повторно распаковываем полученные файлы BIOS (см. п. 4а, - 4в) и просматривая файлы original.* с помощью программы  HIEW.EXE убеждаемся в том, что они содержат измененные инструментальные пароли BIOS, для чего выполняем расшифровку парольного хеша по соотвествующим алгоритмам.

Исследование запакованных файлов BIOS утилитой CBROM.EXE

Утилита CBROM.EXE предназначена для просмотра и корректировки содержимого BIOS, сборки его из отдельных модулей и расчета контрольной суммы (CheckSum).

Программа работает в режиме командной строки, поэтому предварительно необходимо открыть командное окно или файл-менеджер "FAR.EXE".

1. Запустим программу CBROM.EXE с опцией "/?", получив в результате информацию об остальных опциях программы.

2. Теперь загрузим программу следующим образом:

CBROM.EXE <Имя файла с программой BIOS> /D

3. В результате получим таблицу компоновки модулей в файле BIOS с указанием объема каждого модуля до и после упаковки.

4. Сравним полученные результаты с таблицей, построенной в пункте 3 данной работы.

Задание на дом:

  1.  Выполнить распаковку содержимого BIOS своего домашнего компьютера.
  2.  Изменить инструментальный пароль BIOS, задав его в виде первых 8 символов своей фамилии.
  3.  Получить запакованный двоичный файл BIOS без перепрограммирования BIOS.
  4.  Представить к защите лабораторной работы на дискете первоначальный и сгенерированный файл «прошивки» BIOS, а также оба модуля original.* 
  5.  Представить письменный отчет о выполнении раздела «Порядок выполнения работы»


 

А также другие работы, которые могут Вас заинтересовать

764. Элементы структуры контроллинга 64.5 KB
  В сферу задач контроллинга входит постановка целей предприятия, сбор и обработка информации для принятия управленческих решений. Синтез элементов учета, анализа, контроля, планирования, реализация которых обеспечивает выработку альтернативных подходов при осуществлении оперативного и стратегического управления процессом достижения конечных целей.
765. Формування педагогічної культури батьків з питань дипломатичного спілкування з дітьми 53.5 KB
  Виявити найоптимальніші умови становлення батьківського авторитету для малюка. Довести вплив родини та устрою сімейного життя на формування у дітей поваги та любові до батьків. Удосконалити досвід партнерського спілкування батьків з дитиною.
766. История развития представлений о времени и расстоянии 51 KB
  Представления о пространстве. Эволюция базовых понятий пространства. Теория пространства. Представления о времени. История развития представлений о времени. Физическая теория времени.
767. Информационная безопасность 79 KB
  Основные угрозы информационной безопасности. Аппаратно-программные средства защиты информации. Системы шифрования данных, передаваемых по сетям. Средства управления криптографическими ключами.
768. Інструментальні засоби візуального програмування 32.5 KB
  нструментальні засоби візуального програмування. Оголошення та застосування масивів для вирішення поставленої задачі.
769. Місце, роль та потенціал розвитку Аргентини у міжнародному торгівельному просторі 1.51 MB
  Абсолютні показники розвитку зовнішньої торгівлі. Результуючі показники розвитку зовнішньої торгівлі. Аналіз структурних показників на підставі питомої ваги. Аналіз показників інтенсивності. Рівень інтеграції у глобальну економіку. Стан та перспективи зовнішньоторговельної взаємодії з Україною.
770. Складання кошторису та аналіз прибутку і витрат на виробництво 212 KB
  Складання кошторису витрат на виробництво продукції. Кошторис витрат на виробництво й реалізацію за квартал. Визначення капіталовкладень у розвиток виробництва. Підприємство як суб`єкт господарювання: ознаки, цілі, напрямки діяльності.
772. Измерение теплоемкости 791 KB
  Изменение положения тигля в ячейке. Различие в теплофизических и физических характеристиках образца и стандарта. Отличие средней температуры образца от измеряемой температуры. Значения параметров кинетических уравнений элементарных стадий.