Pinczakko's Guide to Award BIOS Reverse Engineering

The Pinczakko's Guide to Award BIOS reverse engineering article has been updated. This update includes: improved Table of Contents for better navigation, improved BIOS chip addressing explanation, added new sections, i.e. "Relocatable" Hardware Port explanation and Expansion ROM Handling explanation, better code interpretation and also link to download compressed version of the article now provided as well. Still version Beta3, but I consider it as an operational article.

Аватар пользователя Root

Все - получил и выложил. См. тут

Аццкий ромбовод {:€
Я пока не волшебник - я только учусь! :-P

Аватар пользователя ivp

Root
Как это нынче говорится, щас пачетайу... wink

- Ситчик веселенький есть?..
- Приезжайте, обхохочетесь!..

Аватар пользователя rgt

Семен Сатановский Начал читать перевод, он производит приятное впечатление, ну а о некотороые терминологические тонкости и другие правки, думаю стоит обсудить.
Из того, что хотелось бы поправить пока заметил

Цитата:
Edge/Level Triggered (R/W) [Основной контроллер прерываний, переключение край/уровень(чтение/запись)]
.

Думаю стоит использовать привычную терминологию переключение по фронту/уровню сигнала.
Хотелось бы решить как будет лучше - публиковать здесь предлагаемые правки, или отсылаем их Вам. Я думаю, что коль скоро Вы взялись за этот перевод то и выбор режима корректуры стоит "подгонять" под Вас.

За несоответствие действительности Вашим о ней представлениям администрация форума ответственности не несет.

Аватар пользователя Root

rgt
гуд. ИМХО - правильное замечание.
Семен Сатановский

Цитата:
7.2.1. Entry point from "Bootblock in RAM" (Точка входа из "Бут-Блока в оперативную память")

скорее - "Точка входа из бутблока в оперативе". Остальное пока читаю и вникаю:)

Цитата:
Биты 30 - 16 резервные.

очепятка. Потому что ниже:
Цитата:
Биты 23 - 16 Номер Шины PCI.

?

Цитата:
F000:6008 24 FC and al, 0FCh ; mask it (замаскировать его) (что значит “mask” в программировании,

F000:600A BA F8 0C mov dx, 0CF8h что значит «немаскированное прерывание», а что такое «маскированное

F000:600D 66 EF out dx, eax прерывание», как всегда, термин встречал, объяснения нет L)
маскировать - означает применить операцию с неким заданным числовым операндом (который называется маской) к данному операнду.
маскированное (точнее - маскируемые) и немаскированное (немаскируемые) прерывания - означает источник прерывания. Первые - по входу контроллера прерываний, а вторые - по входу NMI

Цитата:
("и"-это союз или логический оператор?)

"and mask" имеет два значения:
1) аналогичное "or mask" - маска для операции and ("or mask" - для or)
2) и действительно союз И: чего-то там "и [его] маска"

там же в тексте встречаются вопросы по сигналам ROMCS#, SUSC# и пр. - см. даташиты на VIA СМ и ЮМ (596A/B & 686A/B) - там все описано :twisted: Линк в ПМ я посылал....

Цитата:
F000:E1E8 ; используется для инициализации PwrMgmt GPIO контроллера,

; Host контроллера и DRAM контроллера (хотел бы я знать, что такое

; Host контроллера и Host Bridge :-\, что есть какие-то еще мосты кроме

; северного и южного, и вообще, о каком таком Host-e идет речь?)
в оригинале было "PwrMgmt GPIO Ctlr, Host Ctlr and DRAM Ctlr"


DRAM Cntrl - контроллер памяти. Обычно в СМ.
Host Ctrl = Host Bridge.
Цитата:
что такое в данном случае SI, регистр или что-то еще?

регистр
Цитата:
что такое "Is"?

ср. - "Is anybody here?"
в случае "Is_New_Decomp_Method" - ИМХО, проверка на New_Decomp_Method, т.е. применение "нового" метода распаковки.
Цитата:
(dummy) (Что такое dumme?)

dummy - пустышка, заглушка.
была даже известная серия книг "... for Dummies". По-русски - "... для чайников"
Цитата:
E000:628A call ax ; вызов 154Eh (адрес относительного вызова) (relative call addr – что это такое? Что в данном случае

E000:628A ; ,ни один из этих вызовов не значит "relative"?)
ИМХО, Вам будет полезно почитать книгу Гука "Процессоры Pentium II, Pentium Pro и просто Pentium". Линк на скан, думаю, могу дать.
Идея в том, что функции (ладно - процедуры) можно вызывать не только по абсолютному адресу в памяти/смещению, но и по содержимому некоего регистра, причем его значение можети динамически меняться. Вот и называется такая адресация относительно, т.к. адрес высчитывается относительно некоего регистра....

Цитата:
F000:5512 ; текущий сегмент ,код,DPL=0 (segment present, может все-таки present segment или presented segment?)

туда же :twisted: это общепринятое англоязычное название бита. По-русски - бит присутствия сегмента в ОЗУ.
Цитата:
ptr (что значит "ptr"?)

prt = сокр. от pointer ака указатель.
off = сокр. от offset, т.е. смещение.
Цитата:
restore bx to point to first byte (может быть to the point of the first byte ?

мой перевод - восстановить значение [регистра] bx, чтобы он указывал на первый байт
Причем в общем случае это не эквивалентно тому, что bx содержит адрес первого байта.

Цитата:
что такое "POST_decomp_Ret "?

по названию см.... Дополняем его до POST_decompression_return и получаем разумные перевод - концовка процедуры POST_decomp (ака распаковка ПОСТ)
Цитата:
E000:6FDE jnz Not_Old_Decomp_Method ; переход на ...(что такое "Not"?) осуществляется на первом проходе

Not = отрицание. Not_Old_Decomp_Method - нечто, выполняемое в случае нахождения не старого метода запаковки, а нового метода....
Цитата:
(что значит "clear 80000h to 8FFFFh"?)

видимо, очистка памяти по адресам 80000 - 8FFFF
Резюме: в целом, перевод статьи производит очень хорошее впечатление, даже несмотря на некоторые "pecularities" и вопросы переводчика:)
В общем, большое спасибо переводчику:)

Аццкий ромбовод {:€
Я пока не волшебник - я только учусь! :-P

Аватар пользователя Семен Сатановский

Господа, когда я отправил Root-у перевод, я попросил поместить некоторое предисловие для определения механизма внесения корректив, но, очевидно
по техническим причинам это не получилось. Предисловие таково:
"Текст в скобках написанный стилем "Arial" (голубой шрифт высотой 9)

яляется вопросами, задаваемыми мною в виду его недостаточной

компетентности. Ответы необходимы для написания корректного перевода

соответствующих мест. Свои варианты перевода или трактовки тех или иных
мест просьба писать в виде постов в соответствующей теме форума с

приведением оригинального текста статьи, моего варианта, своего варианта

и конструктивной аргументации своего предложения (аппеляции к авторитету

корифеев данного жанра всех мастей таковой не являются).
Убедительная просьба ко всем желающим принять участие в обсуждении: не
пытайтесь редактировать стиль моего изложения каким бы нудным,

многословным и тяжеловесным он Вам не казался, я писал таким образом
опираясь на идею автора статьи о том, что она должна дать знания тем, у

кого их нет, у кого они есть, в этой статье не нуждается, а в остроте
слова и лаконизме речи желающие могут поупражняться на страницах форума.
Все это относится лишь к форме изложения, Теперь о редактировании

содержания. Все изменения вношу ТОЛЬКО Я на основе Ваших профессиональных
и компетентных замечаний , но первоначально понятых мной. Это в

значительной степени гарантирует понимаемость текста перевода теми, для

кого он предназначен - новичками.
Если кого-то не устраивает такая постановка вопроса, то он может или не

участвовать в обсуждении, или написать свой перевод так, как считает

нужным, а поскольку никто из ветеранов форума еще не сподобился написать
оный, то очевидно и не напишет. Посему желательно согласиться с моей

постановкой вопроса, и да пребуду Я с Вами:) Аминь.
Семен Сатановский
P.S. Просьба исправлять также обнаруженные грамматические ошибки."

Еще хочу добавить, пожалуйста пишите точно, в каком разделе находится фраза, которая по Вашему мнению должна быть изменена. Если я согласен с содержанием предложенного изменения, то вношу его в тект перевода без дополнительных комментариев (чтобы не плодить пустые посты), если же не согласен, тогда обсуждаем почему.

To Pinczakko

Thank you very mutch for offering your help. I'll plan to send you some
questions about places in your articte I do not comprehend, but later, after
fixing some misunderstandings caused by my ignorance in programming (with
help of some educated guys from our forum).

P.S. Господа, извините за задержку с ответом, В Жуковском появился DanZer shock
Только сел писать этот пост, он позвонил, в результате пришлось отложить
это занятие на несколько часов.

Аватар пользователя Семен Сатановский

После прочтения обширного, но малоэффективного поста Root-a, хочу сделать
еще несколько замечаний по процедуре редактирования.
1)Большинство вопросов адресовано к автору статьи и написаны мною в основном
как памятки для самого себя, однако, если кто-то из Вас ответит на часть из них, буду очень рад.
2)Если я задаю вопрос, то мне нужен на него ответ, а не ссылка на даташит, или рекомендация почитать объемный трактат на тему... В данном случае задача состоит в том, чтобы совместными усилиями привести перевод статьи к понятному и удобочитаемому виду, а не заниматься восполнением пробелов в моем образование.
3)Если я спрашиваю расшифровку незнакомой абревеатуры или непонятного термина, то мне нужно понятная расшифровка или объяснение, чтобы поместить их в статью. Я смутно догадываюсь, что слова "И" и "ИЛИ" могут быть как логическими операторами, так и грамматическими союзами, однако в данном случае мне нужно знать, в каком значении они применены конкретном контексте.
4)В состоянии ли кто-нибудь внятно и подробно объяснить мне, что такое "маска", маскируемое прерывание и немаскируемое прерывание?

Аватар пользователя savely

Термин "Маска" применяется в применении к логическим операциям AND и OR (чаще AND).

AND - логическое "И".
1 AND 1 = 1
1 AND 0 = 0
0 AND 1 = 0
0 AND 0 = 0

OR - логическое "ИЛИ"
1 OR 1 = 1
1 OR 0 = 1
0 OR 1 = 1
0 OR 0 = 0

Маской называется второй операнд в логической операции, выбранный таким образом, чтобы изменить или отделить один или несколько бит в первом операнде.
Пример 1:
имеем байт 10101010, нужно выделить 2 младших бита. AND-Маска - 00000011.
Ибо 10101010 AND 00000011 = 00000010
Пример 2:
имеем байт 10101010, нужно установить младший бит. OR-маска - 00000001.
Ибо 10101010 OR 00000001 = 10101011.

Насчет прерываний - ну, тут не совсем прямая связь. Смысл в том, что маскируемое прерывание может быть программно запрещено. Термин "маскируемое" произошел от того, что для запрещения на соотв. регистр контроллера прерываний (а в нем состояние битов соответствует разрешению/запрещению прерываний, по биту на прерывание) накладывается маска для изменения соотв. бита для запрещения/разрешения определенного прерывания.

Немаскируемое прерывание не управляется программно. Т.е. его генерацию нельзя запретить.

Нормально? Понятно?

А кому счас легко...

Аватар пользователя Семен Сатановский

savely_s писал(-а):
Нормально? Понятно?

Спасибо, более или менее на пока :|

Аватар пользователя Pinczakko

I've added new section for IDA Pro. This section is an introductory material for people who struggle to use IDA Pro. Happy reading and thx goes to people that suggested me to add that section:)

-- Human knowledge belongs to the world --
-- Знания людей принадлежат миру --

Аватар пользователя Root

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


Все копирайты на перевод - Семен Сатановский, а на оригинал - Pinczakko

Аццкий ромбовод {:€
Я пока не волшебник - я только учусь! :-P

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

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые 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.

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

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