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


 

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

40197. Особенности финансов некоммерческих организаций 22 KB
  Некоммерческие П. Некоммерческие партнерства 7. Автономные некоммерческие организации 8.
40198. Организация управления финансами корпораций. Организационная структура финансовой службы 62.5 KB
  СТРУКТУРА ФИНАНСОВОЙ СЛУЖБЫ ПРЕДПРИЯТИЯ Общее правило формирования коллектива сотрудников финансовой службы предприятия – высокая квалификация и экономически обоснованная минимизация штата. Поэтому структура финансовой службы предприятия обычно формируется постепенно по мере развития предприятия освоения современных технологий и внедрения современных инструментов финансового менеджмента централизации финансово – экономического управления предприятием и формирования на предприятии высокой корпоративной культуры. Структура финансовой службы...
40199. Понятие и сущность финансовых ресурсов. Охарактеризуйте основные подходы к формированию понятия финансовые ресурсы 41.5 KB
  Прибыль – это часть чистого дохода созданного в процессе производства и реализованного в сфере обращения которую непосредственно получает предприятие. Прибыль убыток отчетного периода складывается из: прибыли от реализации товаров; прибыли от реализации имущества и прочих активов; прибыли от финансовых операций; внереализационной прибыли. Прибыль от реализации товаров представляет собой разность выручки от реализации за вычетом НДС акцизов экспортных пошлин налога на реализацию ГСМ процентных надбавок к розничным ценам на...
40200. Подходы к трактовке определения капитала. Учетно-аналитический подход к трактовке понятия капитала 32.5 KB
  Подходы к трактовке определения капитала. Учетноаналитический подход к трактовке понятия капитала. Капитал – это стоимость которая имеет рыночную цену и спрос это реализуемая стоимость. Капитал имеет три формы движения: предпринимательскую прямые капиталовложения в производство и портфельные инвестиции т.
40201. Экономическая сущность капитала. Принципы его формирования 35.5 KB
  Экономическая сущность капитала. Рассматривая экономическую сущность капитала предприятия отметим следующие его главные черты: основной фактор производство; источник формирования благосостояния собственников; капитал предприятия является измерителем его рыночной стоимости. Вместе с тем объем используемого предприятием собственного капитала характеризует одновременно и потенциал привлечения им заемных средств; Динамика капитала предприятия является важнейшим показателем уровня эффективности его хозяйственной деятельности то есть за...
40202. Собственный капитал и его основные элементы. Расчет чистых активов 36.5 KB
  Расчет чистых активов Собственный капитал – общая стоимость средств пря принадлежащих ему на праве собственности. Для определения стоимости собственного капитала используется показатель стоимость чистых активов пря Ча=АрПр где где р принимаемые к расчету Аактивы Ппассивы Ча пря рассчитывается ежеквартально. Под стоимостью чистых активов акционерного общества понимается величина определяемая путем вычитания из суммы активов акционерного общества принимаемых к расчету суммы его пассивов принимаемых к расчету. Порядок расчета...
40203. Заемный капитал и его источники формирования 26 KB
  Краткосрочные Краткосрочные кредиты банков Краткосрочные займы Кредиторская задолженность По источникам привлечения: 1. Из внутренних источников кредиторская задолженность Цели привлечения: 1 – инвестиционные цели создание запасов; 2 – обеспечение непрерывности производственного процесса потребности пря в ресурсах. Кредиторская задолженность Задолженность поставщикам подрядчикам за выполненные работы поступившие ценности Начисленная но не выплаченная з...
40204. Эмиссия облигаций как источник финансирования 28 KB
  Эмиссия облигаций как источник финансирования. Эмиссия облигаций. Одним из источников финансирования инвестиционной деятельности может быть эмиссия облигаций направленная на привлечение временно свободных денежных средств населения и коммерческих структур.Привлекательность облигаций для потенциальных инвесторов во многом определяется условиями их размещения.
40205. Концепция стоимости капитала. Понятие и виды стоимости 48.5 KB
  Концепция стоимости капитала. Концепция стоимости капитала. Факторы определяющие цену капитала предприятия Одной из важнейших предпосылок эффективного управления капиталом предприятия является оценка его стоимости. Стоимость капитала представляет собой цену которую предприятие платит за его привлечение из различных источников.