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


 

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

28285. Признание гражданина безвестно отсутствующим и объявление его умершим: понятие, порядок, правовые последствия 15.43 KB
  Признание гражданина безвестно отсутствующим и объявление его умершим: понятие порядок правовые последствия. При невозможности установить день получения последних сведений об отсутствующем началом исчисления срока для признания безвестного отсутствия считается первое число месяца следующего за тем в котором были получены последние сведения об отсутствующем а при невозможности установить этот месяц первое января следующего года Последствия признания гражданина безвестно отсутствующим. Имущество гражданина признанного безвестно...
28286. Гражданско-правовое положение индивидуального предпринимателя. Банкротство гражданина 16.3 KB
  Гражданин вправе заниматься предпринимательской деятельностью без образования юридического лица с момента государственной регистрации в качестве индивидуального предпринимателя. Статус ИП гражданин приобретает в результате его государственной регистрации в качестве индивидуального предпринимателя. Глава крестьянского фермерского хозяйства осуществляющего деятельность без образования юридического лица признается предпринимателем автоматически с момента государственной регистрации его хозяйства. При этом особой регистрации владельца...
28287. Юридические лица: понятие, признаки, правосубъектность 14.94 KB
  Юридическое лицо это организация которая имеет в собственности хозяйственном ведении или оперативном управлении обособленное имущество и отвечает по своим обязательствам этим имуществом может от своего имени приобретать и осуществлять имущественные и личные неимущественные права нести ответственность и быть истцом и ответчиком в суде. Юридическое лицо должно иметь самостоятельный баланс или смету ст. в гражданскоправовых отношениях юридическое лицо действует как единое целое. их интересы совокупно представляет созданное ими юридическое...
28288. Возникновение и прекращение юридического лица 16.51 KB
  Предмет и цели деятельности указываются в учредительных документах некоммерческих организаций и унитарных предприятий. Реорганизация представляет собой прекращение деятельности одной организации с переходом прав и обязанностей к другой организации. Реорганизация ЮЛ осуществляется в таких формах как: слияние нескольких юридических лиц в одно; присоединение одного или нескольких юридических лиц к другому; разделение юридического лица на несколько самостоятельных организаций; выделение из состава юридического лица не прекращающего при...
28289. Индивидуализация юридического лица и результатов его деятельности 15.32 KB
  Индивидуализация юридического лица и результатов его деятельности. Индивидуализация юридического лица т. Местонахождения юридического лица определяется местом его государственной регистрации. Государственная регистрация юридического лица осуществляется по местонахождению его постоянно действующего исполнительного органа а в случае отсутствия постоянно действующего исполнительного органа иного органа или лица имеющих право действовать от имени юридического лица без доверенности п.
28290. Несостоятельность (банкротство) юридических лиц 16.02 KB
  Несостоятельность банкротство – это признанная арбитражным судом неспособность должника в полном объеме удовлетворить требования кредиторов по денежным обязательствам и или исполнить обязанность по уплате обязательных платежей. С момента принятия арбитражным судом заявления до признания должника банкротом и открытия конкурсного производства или до введения внешнего управления или утверждения мирового соглашения имеет место процедура наблюдения. Целью процедуры наблюдения является выявление всех кредиторов должника составление реестра...
28291. Реорганизация юридических лиц 14.96 KB
  Реорганизация юридического лица способ прекращения существующих юридических лиц с одновременным возникновением новых юридических лиц и переходом прав и обязанностей первых ко вторым в порядке универсального право преемства. Слиянием юридических лиц признается создание нового юридического лица с передачей ему всех прав и обязанностей двух или нескольких юридических лиц и прекращением последних. Присоединением юридического лица признается прекращение одного или нескольких юридических лиц с передачей всех их прав и обязанностей другому...
28292. Порядок ликвидации юридического лица 15.56 KB
  Порядок ликвидации юридического лица. Ликвидация юридического лица это способ прекращения юридического лица без перехода прав и обязанностей в порядке правопреемства к другим лицам п. Ликвидация юридического лица может быть добровольной и принудительной. Добровольная ликвидация осуществляется по решению уполномоченных субъектов учредителей участников либо органа юридического лица.
28293. Филиалы, представительства, дочерние предприятия юридического лица 15.33 KB
  Филиалы представительства дочерние предприятия юридического лица. Представительство – обособленное подразделение юридического лица расположенное вне места нахождения самого юридического лица представляющее интересы юридического лица и осуществляющее их защиту например реклама продукции юридического лица поиск и установление контактов с потенциальными покупателями реализация продукции и др. Филиал – обособленное подразделение юридического лица расположенное вне места его нахождения и осуществляющее все его функции или их часть в том...