Вход

Доверенный программный комплекс считывания BIOS из энергонезависимой памяти

Рекомендуемая категория для самостоятельной подготовки:
Дипломная работа*
Код 357436
Дата создания 03 июня 2013
Страниц 115
Мы сможем обработать ваш заказ (!) 29 марта в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
3 430руб.
КУПИТЬ

Описание

Работа защищалась в 2011 году в МИРЭА. Оценка - отлично. В работе присутствует программный код комплекса, а так же различные сведения для работы в BIOS. ...

Содержание

ВВЕДЕНИЕ 4
Глава 1. СОЗДАНИЕ ДОВЕРЕННОЙ СРЕДЫ РАЗРАБОТКИ. 5
1.1.ОБОСНОВАНИЕ ДОВЕРЕННОЙ СРЕДЫ. 5
1.2. РЕЗУЛЬТАТ ИССЛЕДОВАНИЯ (ПО СРЕДСТВАМ ДИЗАССЕМБЛИРОВАНИЯ) ФАЙЛОВ ОС MS-DOS. 5
1.3.РЕЗУЛЬТАТ ИССЛЕДОВАНИЯ КОМПИЛЯТОРА DJ DELORI И ИСПОЛЬЗУЕМЫХ БИБЛИОТЕК. 7
1.4. ВЫВОД. 7
Глава 2. ОПИСАНИЕ РАЗРАБОТАННОГО ПРОГРАММНОГО КОМПЛЕКСА. 8
2.3. ИСПОЛЬЗОВАНИЕ СТАТИЧЕСКОГО АНАЛИЗА ДЛЯ ПОСИКА ДЕФЕКТОВ ПРОГРАММНОГО КОДА. 10
Глава 3. ИССЛЕДОВАНИЕ ПОЛУЧЕННОГО ОБРАЗА BIOS НА НАЛИЧИЕ/ОТСУТСТВИЕ НЕДОКУМЕНТИРОВАННЫХ ВОЗМОЖНОСТЕЙ И ОПАСНЫХ ВОЗДЕЙСТВИЙ. 13
3.2. АЛГОРИТМ ЗАГРУЗКИ И ШТАТНОЙ РАБОТЫ ВПО. 30
3.3. ВЫЯВЛЕННЫЕ УГРОЗ И ХАРАКТЕР ИХ ДЕСТРУКТИВНОГО ВОЗДЕЙСТВИЯ. 32
3.4. ВЫВОД И РЕКОМЕНДАЦИИ ПО РЕЗУЛЬТАТАМ ИССЛЕДОВАНИЙ. 35
Глава 4. МОДЕЛЬ ОЦЕНКИ НАДЕЖНОСТИ СИСТЕМ ЗАЩИТЫ BIOS КОМПЬЮТЕРА. 37
ЗАКЛЮЧЕНИЕ 40
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ. 4

Введение

В наши дни массовое применение компьютерных систем поставило перед потребителями современных технологий новую проблему — проблему информационной безопасности. Особенно остро данная проблема ощущается в системах, для которых конфиденциальность и сохранность данных является критически важной.
Отечественная специфика проблемы защиты компьютерных систем состоит в том, что используемые повсеместно в нашей стране популярные импортные средства не рассчитаны на применение в тех ситуациях, когда безопасность имеет существенное значение, поскольку они предназначались для массового рынка, а не для обработки конфиденциальной информации.
С другой стороны реальность такова, что любые попытки построения систем защиты, не совместимых с популярными средствами обработки информации, заранее обречены на неуда чу. В частности, средством, без которого не может функционировать ни одна защищенная вычислительная система является встроенное программное обеспечение BIOS, расположенное в энергонезависимой памяти (ПЗУ) материнской платы. BIOS – базовой системы ввода/вывода, осуществляющая первоначальную инициализацию оборудования после подачи питания.
Таким образом, наиболее рациональным выходом является создание отечественной защищенной системы, на базе зарубежных разработок, которая будет обеспечивать безопасность обрабатываемой информации и рассчитана на использование совместно с существующими системами и приложениями зарубежных рынка.
Целью данной работы являлась построение доверенного программного комплекса по получению встроенного программного обеспечения BIOS в виде удобном для анализа и исследования на наличие недокументированных возможностей и опасных закладок в его программном коде на примере архитектуры Intel.
Актуальность этой темы заключается в том, что данный комплекс позволяет получить BIOS в том виде, в котором он находиться на энергонезависимой памяти, без скрытия каких либо его участков. В силу того, что проверку BIOS невозможно осуществить в автоматизированном режиме каким либо программным обеспечением, то исследование BIOS является одной из актуальных задач, без решения которой невозможно гарантировать безопасность обрабатываемой информации, как на обычном компьютере, так и на серверной машине.
Объект дипломной работы: встроенное программное обеспечение BIOS, механизмы защиты BIOS от считывания и модификации, реализованные как производителем микросхемы флеш ПЗУ, так и производителем материнской платы.
Научная новизна: разработка первого российского доверенного программного комплекса работы с BIOS, что позволяет оценивать качество работы сторонних программ (от производителя).
Практическая ценность: позволяет считывать BIOS с энергонезависимой памяти в виде пригодном для анализа.
Первая часть дипломной работы посвящена созданию доверенной среды разработки. Что подразумевает под собой:
проверка операционной системы на несанкционированную передачу управления или данных с используемого компьютера, а также отсутствие программных кодов воздействующих на файлы созданные пользователем;
использование языка программирования с открытыми исходными кодами и доступные для проверки подключаемые библиотеки и файлы.
Для проверки ОС проводиться анализ восстановленных с помощью дизассемблера кодов и на основе полученных результатов создается карта памяти загрузки элементов используемой ОС. Используемый язык программирования является портированной версией языка GCC из Linux в DOS, поэтому проверка сводиться к проверке кодов подключаемых библиотек.
Вторая часть посвящена непосредственно программному комплексу, описание его возможностей и функционала. Будут приведены результаты работы программного комплекса с комментариями и общее описание кода выполняющего ту или иную функцию.
В третьей части будут проведен анализ образа BIOS, полученного с помощью разработанного в данной работе программного комплекса. Так же будут описаны возможные уязвимости встроенного программного обеспечения BIOS. На основании полученных результатов построена модель оценки надежности механизмов защиты BIOS.
И в заключении будут приведены меры организации защиты, которые перекрывают большинство общеизвестных уязвимостей компьютера

Фрагмент работы для ознакомления

Глава 4. МОДЕЛЬ ОЦЕНКИ НАДЕЖНОСТИ СИСТЕМ ЗАЩИТЫ BIOS КОМПЬЮТЕРА.Сегодня для каждой системы обработки информации разрабатывают свои модели нарушителя и угрозы, учитывая особенности и целевое назначение каждого элемента системы. Оценочная модель, учитывающая особенности построения защиты системы от анализа, позволяет получить качественные оценки надежности в зависимости от времени, затраченного на анализ защиты и кода BIOS. Параметры, используемые в данной модели, трудно поддаются количественной оценке или измерению, так как они носят случайный характер. В ряде случаев их можно интерпретировать случайными числами, которые оцениваются по результатам тестирования (статическая оценка), либо экспертными оценками.В частности рассматриваются два способа снятия защиты и анализа кода (автоматическийи ручной) и используют следующие понятия:1) множество средств исследования механизма защиты, позволяющих в последствие автоматически снимать защиту; 2) множество средств исследования кода BIOS, облегчающих анализ;3) вероятность наличия у пользователя средства на момент времени t из множества средств автоматического анализа BIOS и реализуемой защиты;4) вероятность наличия у пользователя средства на момент времени t из множества средств, облегчающих анализ;5) вероятность того, что пользователь опробует имеющиеся у него средства для автоматического снятия защиты;6) вероятность того, что пользователь опробует имеющиеся у него средства для исследования кода BIOS;7) объем защитного механизма (число команд, аппаратные настройки, операнды и т.д.);8) популярность используемого защитного механизма на момент времени t;9) популярность схожих версий BIOS на момент времени t.Вероятность, того что механизм защиты не будет взломан для данной системы обработки информации ни одним из средств для автоматического снятия защиты на момент времени t, будет определяться по формуле:p1(t) = 1 – r1t+r1t*(1- L1)(1.1)где:r1(t) – вероятность наличия у пользователя средства на момент времени t из множества средств автоматического снятия защиты;L1 – вероятность, что пользователь опробует имеющиеся у него средства для автоматического снятия защиты.С учетом количества реализаций защитного механизма – m1(t), соответственно:p1(t, m1) = (1 – r1(t) * L1)m1(t).(1.2)В том случае, если защитный механизм не выдержал испытания всеми имеющимися у эксперта средствами автоматического съема защиты, а как показывает практика, большинство защитных механизмов разработчики намеренно не включают. Следовательно, нужно переходить к оценке трудоемкости исследования кода BIOS с использованием ручных средств анализа.Для получения численной экспертной оценки надежности кода BIOS введем качественное понятие «Уровень Понимания Программного Кода (УППК)» исследователем – U.УППК отражает знание и понимание исследователем названия команд и операндов программы. Единица измерения УППК – число машинных команд, операндов. Считаем, что уровень понимания программного кода конкретным исследователем равен N, если эксперт в состоянии «закомментировать» назначение каждой команды и каждого операнда применительно к функциям, которые решает данный программ код. В общем случае процесс исследования BIOS на предмет уязвимых мест носит вероятностный характер (уязвимости могут быть, а могу и не быть). Вероятность того, что за время t один эксперт не сможет разобраться с программным кодом, будет определяться через отношение УППК к объему кода:p2t=1-(r2t+L2)*UtN (1.3)где:r2(t) – вероятность наличия у пользователя средства на момент времени t из множества средств исследования программного кода, облегчающих анализ;L2 – вероятность, что пользователь опробует имеющиеся у него средства для исследования программного кода;U(t) – УППК на момент времени t;N – объем BIOS в машинных кодах;С учетом количества выпущенных версий BIOS – m2(t) версий, соответственно:p2t, m2=1-(r2t+L2)*UtNm2(t) (1.4)Понимание экспертом каждой анализируемой команды или операнда образа BIOS во многом определяется тем, как он смог освоить уже исследованную часть кода. Вышесказанное можно записать в виде:U(t)dt = k*dUОтсюда следует:k*U(t) – U(t)=0Ut=N0ltk где:N0 – значение начального УППК (N0 ≤ N );k – коэффициент сложности анализа;l – имеющиеся средства анализа.При этом U(t) имеет смысл только тогда, когда его значение меньше или равно N, т.е.0 ≤ U(t) ≤ N.Коэффициент сложности k определяется наличием у исследователя возможности использовать различные средства анализа, талантом исследователя.Таким образом, формула (1.4) может быть записана в виде:p2t, m2=1-(r2t+L2)*N0Nltkm2(t) (0≤ p2≤1) (1.8)Ценность выражения (1.8) в том, что в нем взаимоувязаны важнейшие для практической деятельности характеристики:1) уровень подготовки исследователя (N0);2) объем исследуемого кода (N):3) сложность исследуемого BIOS (k).Таким образом, при длительном исследовании образа BIOS (t→ ∞) эксперт рано или поздно доберется до всех слабостей кода, либо сделает вывод, что их нет. Единственный путь помещать ему заключается в создании механизмов, позволяющих рассматривать коэффициент сложности анализа k не как константу, а как зависящую от времени переменную, или увеличивать до бесконечности объем кода N, что в принципе является не актуальным способом.Справедливость утверждения о невозможности создания абсолютно стойкой защиты следует из того, что все команды однозначно интерпретируются процессором, на их выполнение затрачивается конечное число времени. А работа с регистрами однозначно определяется в документации от производителя аппаратного компонента. Следовательно, на анализ системы защиты тоже затрачивается конечное время. Задачей противодействия можно считать значительное увеличение времени анализа кода, встраивая собственные модули и нахождение новых механизмов выстраивания защиты. Успешным результатом можно считать тот, если время на снятие защиты и анализ кода равно или больше времени, которое затрачено на разработку и реализацию защитных мер. В этом случае атаки злоумышленника станут невыгодны как с экономической, так и с практической точки зрения.Таким образом, окончательная формула выглядит следующим образом:Pt=P1t,m1*P2(t,m2)ЗАКЛЮЧЕНИЕВ данной дипломной работе был изучен механизм работы SPI интерфейса для самой популярной архитектуры Intel и на базе полученных знаний разработан программный комплекс по считыванию BIOS из энергонезависимой памяти (flash ПЗУ). Также программный комплекс рассчитан на получение системной информации ПЭВМ и информации о состоянии защиты BIOS относительно модификаций со стороны возможного злоумышленника. В ходе работы были изучены интерактивный дизассемблер IDA Pro, являющийся на сегодняшний день наиболее функциональным и распространенным средством реверс инжиниринга. Как дополнение к программному комплексу было создано скриптовое ПО, для расширения функционала IDA Pro, которое решает рутинные задачи и частично автоматизирует процесс исследования BIOS. Полученный образ базовой системы ввода-вывода (BIOS) фирмы American Megatrends Incorporated (AMI), используемый в материнской плате ASUS P5Q SE2, был исследован на наличие-отсутствие недокументированных возможностей и опасных воздействий. На основании технической документации была подробно изучена архитектура и функциональные возможности материнской платы и базовой системы ввода-вывода (BiOS).Используя интерактивный дизассемблер, были полностью восстановлены исполняемый исходный код BIOS на языке ассемблера х86, алгоритм функционирования, а также модульная структура. Произведен поиск недокументированных возможностей и опасных воздействий, в результате которого были обнаружены следующие особенности, представляющие потенциальную угрозу целостности исполняемого встроенного программного обеспечения (ВПО):1. Существует возможность модификации собственного кода с внешнего носителя.2. Существует возможность внедрения деструктивного кода в образ ВПО BIOS системной платы. Это может быть выполнено путем запуска специализированных утилит перепрограммирования.Даны рекомендации по устранению данных опасных воздействий.На основании результатов анализа исходного кода BIOS и рекомендаций по устранению опасных воздействий на материнскую плату сделан вывод о возможности ее использования в защищенной системе обработки информации.Наряду с исследованием ВПО и разработкой программного комплекса была построена модель оценки надежности систем защиты BIOS и взглянуть на потенциальные угрозы с математической точки зрения.На данный момент, скриптовое программное обеспечение активно используется для анализа BIOS в «ЗАО РНТ». Оно хорошо зарекомендовало себя, снизив затраты времени на исследование на 10%, и улучшило понимаемость восстановленного кода на 4%. Непосредственно сам программный комплекс находиться на стадии тестирования и может быть взят как основное средство по считыванию образа BIOS с материнской платы в отсутствие программатора и как дополнительное средство совместно с программатором.СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ.Бродин В.Б., Шагурин И.И. Микроконтроллеры: архитектура, программирование, интерфейс. Справочник. ЭКОМ, 1999.Волков А., Марков С. Научно-практический семинар. Использование статического анализа для поиска дефектов программного кода. ВМК МГУ, 2009г.Дармаван С. BIOS. Дизассемблирование. Модификация. Программирование. Перевод с англ. – Спб.: БХВ-Петербург, 2007г. – 784с.Касперски К. Образ мышления – Дизассемблер IDA, 2001г – 478 с.Касперски К., Рокко Е. Искусство дизассемблирования, Спб.: БХВ-Петербург, 2008г. – 876с.Кулаков В. Программирование на аппаратном уровне: специальный справочник, 2-е издание. – Спб.: Питер, 2003. – 847 с.Машевский Ю. В. Исследование существующих и разработка новых программных средств защиты информации от динамического и статического анализа, Москва, 2004 – 207 c.Пирогов В. Ю., АССЕМБЛЕР и ДИЗАССЕМБЛИРОВАНИЕ, Спб, БХВ-Петербург,-2006г. - 467 с.AMIBIOS8™ Check Point and Beep Code list (Version 2.0-June 10, 2008)Anderson D., Budruk R., Shanley T., PCI Express System Architecture, MindShare Inc., - 2008г.ASUS P5K PRO User's Manual (First Edition V1, April 2007)BIOS Boot Specification (Version 1.01, January 11, 1996)Common Flash Interface (CFI) and Command Sets, Application Notу 646, April 2000, – 26 c.Datasheet MX25L8005 8M-Bit [x 1] 2.5V CMOS SERIAL FLASHIntel® I/O Controller Hub 7 (ICH7) Family, Datasheet Document Number 307013-003, April 2007.Intel® I/O Controller Hub 8 (ICH8) Family, Datasheet Document Number 313056-003, May 2007.Intel® I/O Controller Hub 9 (ICH9) Family, Datasheet Document Number 316972-004, August 2008.Intel® I/O Controller Hub 10 (ICH10) Family, Datasheet Document Number 319973-003, October 2008.PCI-to-PCI Bridge Architecture Specification (Revision 1.2, June 9, 2003)PCI BIOS Specification (Revision 2.1, August 26, 1994)PCI Express Base Specification (Revision 1.0a, April 15, 2003)System Management Bus Specification (SMBIOS) Reference Specification, Document Number DSP0134 (Version 2.7.0, 21-07-2010)SPI Interface Specification. Technical Note 15.SPI EEPROM Interface Specification. Part Number 223-0017-004 Revision H.Приложение 1.Листинг программного комплекса ICHBIOS.cpp#include <dos.h>#include <conio.h>#include <stdio.h>#include <string.h>#include <stdlib.h>#include <stdarg.h>#include <sys/farptr.h>#include <sys/nearptr.h>#include <go32.h>#include <sys/segments.h>#include <dpmi.h>FILE *output;#define JEDEC_ID 0x9f#define RDID 0x90#define RSTAT 0x05#define READ 0x03//=======================Func for work with memory==================/*This function special for work with address space different device.Addressing implement in protect mode, using adjusted selector.In this part different values read from memory*/unsigned int dev_peek(unsigned long addr, unsigned long offset, char st_dt){ int selector; unsigned long v; __dpmi_meminfo mi; mi.address=addr; mi.size=0x256; __dpmi_physical_address_mapping(&mi); //set address map selector=__dpmi_allocate_ldt_descriptors(1); //create selector //boundary for memory range __dpmi_set_segment_base_address(selector, mi.address); __dpmi_set_segment_limit(selector, mi.size-1); if(st_dt=='b') //byte (can be 'char' or 'long') v=_farpeekb(selector, offset); if(st_dt=='w') //word v=_farpeekw(selector, offset); if(st_dt=='d') //double word v=_farpeekl(selector, offset); //free address map and selector __dpmi_free_physical_address_mapping(&mi); __dpmi_free_ldt_descriptor(selector); return v;}/*This function special for work with address space different device.Addressing implement in protect mode, using adjusted selector.In this part different values write to memory*/void dev_poke(unsigned int addr, unsigned int offset, unsigned int val, char st_dt){ int selector; __dpmi_meminfo mi; mi.address=addr; mi.size=0x256; __dpmi_physical_address_mapping(&mi); selector=__dpmi_allocate_ldt_descriptors(1); __dpmi_set_segment_base_address(selector, mi.address); __dpmi_set_segment_limit(selector, mi.size-1); if(st_dt=='b') _farpokeb(selector, offset, val); if(st_dt=='w') _farpokew(selector, offset, val); if(st_dt=='d') _farpokel(selector, offset, val); __dpmi_free_physical_address_mapping(&mi); __dpmi_free_ldt_descriptor(selector);}//===========================end================================//=====================helper function========================/*Output on the screen or in file it's depend from parametrs*/int varprint(FILE *fp, const char *format, ...){ va_list arg_ptr; va_start(arg_ptr, format); if(fp==NULL) vprintf(format, arg_ptr); else vfprintf(fp, format, arg_ptr); va_end(arg_ptr); return 0; }char *str_cut(char *str, int p){ int len, i; char res[100]; len=strlen(str); for(i=0; i<len; i++) { res[i]=str[i+p]; } return res;}//Print stringint prnt_str(long addr, int len, FILE *f){ long i, temp; for(i=0; i<30; i++) { temp=dev_peek(addr, len, 'b'); if(temp!=0) { len++; varprint(f, "%c", temp); }else { len++; break; } } return len;}//===================================end=============================/*Check and adjust intel LPC register 0xDC - BIOS Control*/int intel_reg_DC(FILE *fp, long bh, long bl){ unsigned long SRC; union REGS rg; rg.h.bh=bh; rg.h.bl=bl; rg.x.cx=0x0; rg.x.ax=0x0b108; rg.x.di=0xdc; int86(0x1A, &rg, &rg); varprint(fp, "\nBIOS Lock Enable (BLE): %sable, ", ((rg.h.cl&0x2)>>1)? "en": "dis"); varprint(fp, "BIOS Write Enable (BIOSWE): %sable\n", (rg.h.cl&0x1)? "en":"dis"); if((rg.h.cl&0x1)==0) { varprint(fp, "Try set BIOSWE bit in 1... "); rg.h.cl=rg.h.cl|0x01; rg.x.ax=0x0b10b; rg.x.di=0x00dc; int86(0x1A, &rg, &rg); if(rg.h.cl&0x1==1) varprint(fp, "OK\n"); } varprint(fp, "SPI Read Configuration: "); SRC=(rg.h.cl>>2)&0x3; if(SRC!=0x3) varprint(fp, "prefetching %sable, caching %sable\n", (SRC&0x2)? "en":"dis", (SRC&0x1)? "dis":"en"); else varprint(fp, "Reserved. Invalid configuration.\n"); return 0;}/*Check and adjust intel LPC register 0xD0-0xD8 - FWH decode and FWH enable. Give access to high memory if it's close.*/int intel_reg_FWH(FILE *fp, long bh, long bl){ int j; long temp; union REGS rg; varprint(fp, "\nFirmware Hub description:"); rg.h.bh=bh; rg.h.bl=bl; rg.d.ecx=0x0; rg.x.ax=0x0b10A; rg.x.di=0xd0; int86(0x1A, &rg, &rg); for(j=7; j>=0; j--) { temp=(rg.d.ecx>>(j*4))&0xf; varprint(fp, "\n0x%08x 0x%08x FWH IDSEL: 0x%x", (0x1ff8+j)*0x80000, (0x1ff0+j)*0x80000, temp); } rg.d.ecx=0x0; rg.x.ax=0x0b109; rg.x.di=0xd4; int86(0x1A, &rg, &rg); for(j=3; j>=0; j--) { temp=(rg.x.cx>>(j*4))&0xf; varprint(fp, "\n0x%08x 0x%08x FWH IDSEL: 0x%x", (0xff4+j)*0x100000, (0xff0+j)*0x100000, temp); } rg.d.ecx=0x0; rg.x.ax=0x0b109; rg.x.di=0xd8; int86(0x1A, &rg, &rg); for(j=7; j>=0; j--) { temp=(rg.x.cx>>(j+0x8))&0x1; varprint(fp, "\n0x%08x 0x%08x FWH decode %sable", (0x1ff8+j)*0x80000, (0x1ff0+j)*0x80000, temp? "en":"dis"); } for(j=3; j>=0; j--) { temp=(rg.x.cx>>j)&0x1; varprint(fp, "\n0x%08x 0x%08x FWH decode %sable", (0xff4+j)*0x100000, (0xff0+j)*0x100000, temp? "en":"dis"); } return 1;}/*Recive RCBAR, using intel LPC register 0xF0 - Root Complex Base Address*/unsigned long RCBAR_func(long bh, long bl){ union REGS rg; rg.h.bh=bh; rg.h.bl=bl; rg.x.cx=0x0; rg.x.ax=0x0b10a; rg.x.di=0xf0; int86(0x1A, &rg, &rg); if(rg.h.cl==0x01) { return rg.d.ecx; } else return 0;}/*Print values saved or load in SPI register ICH8-10*/void SPI_config_9(FILE *fp, unsigned long SPIBAR){ unsigned long HSFS, OPMENU_L, OPMENU_H; int j; varprint(fp, "BBAR: 0x%08x\n", dev_peek(SPIBAR, 0xa0, 'd')); HSFS=dev_peek(SPIBAR, 0x4, 'w'); varprint(fp, "Hardware Sequencing Flash Status Register (HSFS): 0x%x\n", HSFS); varprint(fp, "FLOCKDN %x ", (HSFS>>15)&1); varprint(fp, "FDV %x ", (HSFS>>14)&1); varprint(fp, "FDOPSS %x ", (HSFS>>13)&1); varprint(fp, "SCIP %x ", (HSFS>>5)&1); varprint(fp, "BARASE: "); switch((HSFS>>3)&3) { case 0: varprint(fp, "256 Byte "); break; case 1: varprint(fp, "4 Kbyte "); break; case 2: varprint(fp, "8 Kbyte "); break; case 3: varprint(fp, "64 Kbyte "); break; } varprint(fp, "AEL %x ", (HSFS>>2)&1); varprint(fp, "FCERR %x ", (HSFS>>1)&1); varprint(fp, "FDONE %x\n", HSFS&1); for(j=0x0; j<0x5; j++) varprint(fp, "FREG%x: 0x%08x\n", j, dev_peek(SPIBAR, 0x54+j*0x4, 'd')); varprint(fp, "SSFSTS 0x%x\n", dev_peek(SPIBAR, 0x90, 'b')); varprint(fp, "SSFCTL 0x%x%x\n", dev_peek(SPIBAR, 0x91, 'w'), dev_peek(SPIBAR, 0x93, 'b')); varprint(fp, "PREOP 0x%x\n", dev_peek(SPIBAR, 0x94, 'w')); varprint(fp, "OPTYPE 0x%x\n", dev_peek(SPIBAR, 0x96, 'w')); OPMENU_L=dev_peek(SPIBAR, 0x98, 'd'); OPMENU_H=dev_peek(SPIBAR, 0x9c, 'd'); varprint(fp, "OPMENU[1-4] 0x%08x\n", OPMENU_L); varprint(fp, "OPMENU[5-8] 0x%08x\n", OPMENU_H); return;}/*Print values saved or load in SPI register ICH8-10*/void SPI_config_7(FILE *fp, unsigned long SPIBAR){ unsigned long SSFS; varprint(fp, "BBAR: 0x%08x\n", dev_peek(SPIBAR, 0x50, 'd')); SSFS=dev_peek(SPIBAR, 0x0, 'w'); varprint(fp, "SSFSTS 0x%x\n", SSFS); varprint(fp, "Flash Configuration Lock-Down: %sable\n", ((SSFS>>15)&0x1)?"en":"dis"); varprint(fp, "SSFCTL 0x%x%x\n", dev_peek(SPIBAR, 0x2, 'w')); varprint(fp, "PREOP 0x%x\n", dev_peek(SPIBAR, 0x54, 'w')); varprint(fp, "OPTYPE 0x%x\n", dev_peek(SPIBAR, 0x56, 'w')); varprint(fp, "OPMENU[1-4] 0x%08x\n", dev_peek(SPIBAR, 0x58, 'd')); varprint(fp, "OPMENU[5-8] 0x%08x\n", dev_peek(SPIBAR, 0x5c, 'd'));}/*Search description on VendorID and DeviceID in file databasepci.ids. Update this database if you download new version onhttp://pciids.sourceforge.net */int search_str(int VenID, int DevID) { int len; char *vid; char buf[100]; char temp2[4], temp1[4]; FILE *fp; itoa(VenID, temp1, 16); //translate from int to string itoa(DevID, temp2, 16); //translate from int to string fp=fopen(".\\uses\\pci.

Список литературы

1. Бродин В.Б., Шагурин И.И. Микроконтроллеры: архитектура, программирование, интерфейс. Справочник. ЭКОМ, 1999.
2. Волков А., Марков С. Научно-практический семинар. Использование статического анализа для поиска дефектов программного кода. ВМК МГУ, 2009г.
3. Дармаван С. BIOS. Дизассемблирование. Модификация. Программирование. Перевод с англ. – Спб.: БХВ-Петербург, 2007г. – 784с.
4. Касперски К. Образ мышления – Дизассемблер IDA, 2001г – 478 с.
5. Касперски К., Рокко Е. Искусство дизассемблирования, Спб.: БХВ-Петербург, 2008г. – 876с.
6. Кулаков В. Программирование на аппаратном уровне: специальный справочник, 2-е издание. – Спб.: Питер, 2003. – 847 с.
7. Машевский Ю. В. Исследование существующих и разработка новых программных средств защиты информации от динамического и статического анализа, Москва, 2004 – 207 c.
8. Пирогов В. Ю., АССЕМБЛЕР и ДИЗАССЕМБЛИРОВАНИЕ, Спб, БХВ-Петербург,-2006г. - 467 с.
9. AMIBIOS8™ Check Point and Beep Code list (Version 2.0-June 10, 2008)
10. Anderson D., Budruk R., Shanley T., PCI Express System Architecture, MindShare Inc., - 2008г.
11. ASUS P5K PRO User's Manual (First Edition V1, April 2007)
12. BIOS Boot Specification (Version 1.01, January 11, 1996)
13. Common Flash Interface (CFI) and Command Sets, Application Notу 646, April 2000, – 26 c.
14. Datasheet MX25L8005 8M-Bit [x 1] 2.5V CMOS SERIAL FLASH
15. Intel® I/O Controller Hub 7 (ICH7) Family, Datasheet Document Number 307013-003, April 2007.
16. Intel® I/O Controller Hub 8 (ICH8) Family, Datasheet Document Number 313056-003, May 2007.
17. Intel® I/O Controller Hub 9 (ICH9) Family, Datasheet Document Number 316972-004, August 2008.
18. Intel® I/O Controller Hub 10 (ICH10) Family, Datasheet Document Number 319973-003, October 2008.
19. PCI-to-PCI Bridge Architecture Specification (Revision 1.2, June 9, 2003)
20. PCI BIOS Specification (Revision 2.1, August 26, 1994)
21. PCI Express Base Specification (Revision 1.0a, April 15, 2003)
22. System Management Bus Specification (SMBIOS) Reference Specification, Document Number DSP0134 (Version 2.7.0, 21-07-2010)
23. SPI Interface Specification. Technical Note 15.
24. SPI EEPROM Interface Specification. Part Number 223-0017-004 Revision H
Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00549
© Рефератбанк, 2002 - 2024