Дизассемблирование BIOS...

Используя великий и могучий IDAPro5. + скрипты:)

Начну эту тему (кстати по просьбе уважаемого Романа), для всех тех кому интересно раскопать, как работает БИОС.

Дано: человек имеет опыт обращения c IDA Pro.

Решение №1: Award Bios script by
Alexey Kulentsov (old.idapalace.net/idc/award450.rar)

!!! не путать с award450.idc входящим в состав idapro5!!! который более старый - 1996 г.вып.

Решение №2 (pre-alpha, моё): rapidshare.com/files/28170560/ami.idc.html

Комментарии, советы и предложения в студию.

PS скрипты разрабатывались под 64K BIOS.:)

Для обработки конструкций типа mov bx, offset next / jmp proc / next: есть решение лучше скриптов. Чтобы листинг не засорялся лишними метками, переходами и разрывами связи, можно загнать эти конструкции в макросы. Чтобы это стало возможным в дизассемблированном листинге IDA, есть вариант написания процессорного модуля-надстройки над стандартным x86, дизассемблирующим такие конструкции как псевдоинструкции-макросы. Пример:

		or	ah, 0A0h
		mov	bx, offset loc_FCCAB
		jmp	loc_FE913
; ---------------------------------------------------------------------------

loc_FCCAB:				; CODE XREF: seg000:CCB7j
					; DATA XREF: seg000:CCA5o
		mov	ax, 29h	; ')'
		mov	bx, offset loc_FCCB4
		jmp	loc_FE907
; ---------------------------------------------------------------------------

loc_FCCB4:				; DATA XREF: seg000:CCAEo
		test	ah, 10h
		jz	short loc_FCCAB
		mov	ax, 707h
		mov	bx, offset loc_FCCC2
		jmp	loc_FE913
; ---------------------------------------------------------------------------

loc_FCCC2:				; DATA XREF: seg000:CCBCo

дизассемблируется как
		or	ah, 0A0h
		ROMCallBX sub_FE913

loc_FCCAB:				; CODE XREF: seg000:CCB7j
		mov	ax, 29h	; ')'
		ROMCallBX sub_FE907
		test	ah, 10h
		jz	short loc_FCCAB
		mov	ax, 707h
		ROMCallBX sub_FE913

Мне последний вариант представляется более читабельным, поэтому я такой модуль написал. Выложил тут: diamond.kolibrios.org/ida/romcall.htm

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • You can use BBCode tags in the text. URLs will automatically be converted to links.

Подробнее о форматировании текста

Антибот - введите цифру.
Ленты новостей