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.  Представить письменный отчет о выполнении раздела «Порядок выполнения работы»


 

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

33534. Проблематика и жанровые особенности романа М.Шолохова «Тихий Дон» 16.39 KB
  Действительно Шолохов в отличие от автора “Войны и мира†не дает в романе теоретического обоснования своей исторической концепции несмотря на то что его трактовка исторических событий нередко отличается от главенствовавшей тогда в исторической науке. В своем романе Шолохов рисует жизнь русского донского казачества. В этом романе Шолохов освещает проблемы связанные с войной и революцией начала 20 века. Но есть в романе и другое.
33535. Политическая лирика В.Маяковского 18.44 KB
  Февральская и Октябрьская революции явились для Маяковского началом реального воплощения его идей о новом свободном человеке и счастливом мироустройстве. Отныне романтический индивидуализм присущий лирическому герою Маяковского уступил место соборности единению с миллионами я сменилось на мы конфликт личности и общества был снят самой историей. Футуристическая эстетика Маяковского сменилась доктриной коммунистического футуризма и Левого фронта искусств с его идеями искусства как жизнестроения. Знаменитые Окна РОСТА регулярно...
33536. Идейно-тематические особенности рассказов М.Зощенко. Герои, конфликты 15.7 KB
  Несмотря на то что герой не считает себя удачливым в жизни так как выходит ему время от времени перетык и прискорбный случай он философствует Жизнь штука не простая а сложная имеет на все свои взгляды: и на мужицкую жизнь блекота и слабое развитие техники и на культуру иностранную которую он знает. Я всегда стремился к изображению положительных сторон жизни. которые проповедовали свободу искусства от политики изображали действительность исходя из фактов жизни быта. Главным фактом в то время была революция которую...
33537. Повесть В.Распутина «Прощание с Матерой» как итоговое произведение «деревенской» прозы 17.11 KB
  Жанр повести можно определить как философскую притчу. Таким образом один из основных философских смыслов повести заключается в том что не нами начинается жизнь на земле и не нашим уходом заканчивается. В повести двадцать две главы в которых воспроизводится быт жителей Матеры в последние три месяца их пребывания на острове. Трагическая развязка повести проявляет авторскую позицию.
33538. «Матренин двор» А. Солженицына как начало второго этапа развития «деревенской прозы. Особенности этого этапа 17.23 KB
  Хозяйка дома Матрена одинокая женщина лет шестидесяти. Матрена Васильевна избу не жалела ни для мышей ни для тараканов ибо в шуршании мышей непрерывном как далекий шум океана шорохе тараканов не было ничего злого не было лжи. Матрена отличалась трудолюбием: вставала в четырепять утра тихо вежливо стараясь не шуршать топила русскую печь ходила доить козу по воду ходила и варила в трех судочках . Матрена никому не могла отказать: без нее ни одна пахота не обходилась.
33539. Основные конфликты «деревенской» прозы 50-х гг 15.2 KB
  Деревенская проза ведет свое начало с 50х годов. Очеркистыдеревенщики 50 60х годов не позволяли себе сомневаться в необходимости колхозов не поднимали руку на то как осуществлялось партийное руководство ими но показывали сколько вреда наносят бездумные директивы галочная система. 50е ГОДЫ – овечкинский этап – МОМЕНТ ПРОЗРЕНИЯ после лакировочнобесконфликтного наваждения 40х годов. Овечкинское направление в литературе 50х годов было: резкой реакцией на литературную мифологию 40х годов; возвращением деревенской прозы...
33540. «Василий Теркин» А.Твардовского. Образ героя, художественные особенности 20.78 KB
  Твардовский возобновил работу над образом Василия Теркина которую он начал еще в 1940 г. Твардовский развертывает биографию Теркина как судьбу многих бойцов как обобщение тяжелого и славного пути всей Советской Армии. Создавая образ Теркина автор типизировал массовые явления действительности и прямо указывал на распространенность таких героев: Парень в этом роде В каждой роте есть всегда Да и в каждом взводе. Твардовский по его признанию освобождал ее от всего что сводит книгу к какойто частной истории мельчит ее лишает ее той...
33541. Тип героя и конфликты в рассказах В.Шукшина 16.71 KB
  Автор настойчиво подчеркивает его чудаковатость которая отличает героя от других правильных людей. Создается проблемная для героя ситуация: тайком присвоить бумажку или объявить всем о находке и отдать ее владельцу ведь она этакая зеленая дурочка лежит себе никто ее не видит. Употребляя по отношению к неодушевленному предмету слово дурочка Шукшин передает нюансы душевного состояния героя: радость от находки и от сознания того что никто кроме него не видит бумажку.
33542. Произведение “Царь-рыба” 13.6 KB
  Здесь он царь царь природы. И ведет он себя как царь: он аккуратен все свои дела доводит до конца. Но зачем природе царь не ценящий богатства которым владеет Неужели она покорится и не свергнет его Тогда появляется царьрыба царица рек посланная для борьбы с царем при роды. Каждый рыбак мечтает поймать царьрыбу ведь это знак свыше.