Ромбоком > Ромбофорум Ромбофорум
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы  РегистрацияРегистрация 
 ПрофильПрофиль РепутацияРепутация Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Начать новую тему   Ответить на тему   вывод темы на печать
Предыдущая тема :: Следующая тема  
Автор Сообщение
Pinczakko

Импортный Гуру


Зарегистрирован: 28 Май 2004
Сообщения: 96
Откуда: Индонезия

СообщениеДобавлено: Чт Мар 17, 2005 2:14 pm    Заголовок сообщения: статья B Award BIOS Ответить с цитатой

к сожалению, я не могу говорить на русском :(

some links to award BIOS article that I made:

Award BIOS code injection. Explains how to inject your code/procedure into award BIOS.

Award BIOS Reverse Engineering. This is a stripped down of the old article I upload here last year. (handled by ivp).

Award BIOS File Structure. Explanation of the components inside award bios binary.

Root: чуть подправил мессагу
_________________
-- Human knowledge belongs to the world --
-- Знания людей принадлежат миру --
Вернуться к началу
Просмотреть профиль Отправить личное сообщение Посетить сайт автора
apple_rom

Создатель
Создатель


Зарегистрирован: 05 Май 2003
Сообщения: 1445
Откуда: Minsk

СообщениеДобавлено: Сб Мар 26, 2005 2:35 pm    Заголовок сообщения: Ответить с цитатой

Кстати, всем, кто серьезно интересуется работой с биосом - обязательно к прочтению.
п.с. Эх, напишу ли я свое подобное по ами да по фениксу? ;) По аварду дааавно есть подобное (недописанное), просто с появлением когда-то вышеуказанной статьи интерес дописывать шибко пропал... :)
Вернуться к началу
Просмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
MmM

Site Admin


Зарегистрирован: 05 Май 2003
Сообщения: 1963
Откуда: Великий Новгород

СообщениеДобавлено: Вс Мар 27, 2005 10:10 pm    Заголовок сообщения: Ответить с цитатой

apple_rom А как же "наш ответ чемберлену" IMHO принципиально стоило бы дописать.
Вернуться к началу
Просмотреть профиль Отправить личное сообщение
ivp

Mr. Q


Зарегистрирован: 08 Янв 2004
Сообщения: 8386
Откуда: Москва

СообщениеДобавлено: Вс Мар 27, 2005 11:14 pm    Заголовок сообщения: Ответить с цитатой

MmM
А тут я отчасти виноват - сел за перевод статьи Pinczakko (в качестве рыбы для материала) хз когда, да только всякие изменения в жизни малость отвлекли, каюсь... :oops:
_________________
- Ситчик веселенький есть?..
- Приезжайте, обхохочетесь!..
Вернуться к началу
Просмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Pinczakko

Импортный Гуру


Зарегистрирован: 28 Май 2004
Сообщения: 96
Откуда: Индонезия

СообщениеДобавлено: Пт Апр 01, 2005 11:58 am    Заголовок сообщения: Ответить с цитатой

Я сделал маленькое исправление к статье "Award Bios Reverse Engineering" в разделах "pci bus" И "Some Hardware Pecualiarities/Bios Addressing Scheme".
_________________
-- Human knowledge belongs to the world --
-- Знания людей принадлежат миру --
Вернуться к началу
Просмотреть профиль Отправить личное сообщение Посетить сайт автора
Pinczakko

Импортный Гуру


Зарегистрирован: 28 Май 2004
Сообщения: 96
Откуда: Индонезия

СообщениеДобавлено: Пт Июл 08, 2005 5:57 am    Заголовок сообщения: Ответить с цитатой

Статья для работы "PCI Expansion ROM" Кодий

Low_Cost_Embedded_x86_Teaching_Tool

Объясняет как построить "PCI Expansion ROM" использование инструменты GNU :wink:
_________________
-- Human knowledge belongs to the world --
-- Знания людей принадлежат миру --
Вернуться к началу
Просмотреть профиль Отправить личное сообщение Посетить сайт автора
Pinczakko

Импортный Гуру


Зарегистрирован: 28 Май 2004
Сообщения: 96
Откуда: Индонезия

СообщениеДобавлено: Ср Июл 13, 2005 6:49 am    Заголовок сообщения: Ответить с цитатой

just made minor update to the Award BIOS Reverse Engineering article.

CHANGE LOG
-------------------
1. Table of Contents improved for better navigation.
2. BIOS chip addressing improved.
3. Added new sections:

  • "Relocatable" Hardware Port explanation
  • Expansion ROM Handling explanation

4. Better code interpretation :wink:
5. Compressed version of the article can be downloaded as well
_________________
-- Human knowledge belongs to the world --
-- Знания людей принадлежат миру --
Вернуться к началу
Просмотреть профиль Отправить личное сообщение Посетить сайт автора
apple_rom

Создатель
Создатель


Зарегистрирован: 05 Май 2003
Сообщения: 1445
Откуда: Minsk

СообщениеДобавлено: Пт Июл 15, 2005 5:14 pm    Заголовок сообщения: Ответить с цитатой

Цитата:
20000h - 35531h : original.tmp, this is the system BIOS. This component located in this address in most award bioses, but sometimes also located in the very beginning of the bios binary, i.e. 0000h.

Поправочка (кто-то скажет - опровержение :) ) - правильно будет так:
...в большинстве биосов Award 4.5x 2Mbit/4Mbit. Во всех остальных (как бы и есть - реальное большинство ;) ) - c самого начала файла биоса.

Цитата:
36000h - 36C4Ah : Memory sizing routine, this routine also initialize the Host Bridge and the CPU/RAM clock in my BIOS
37000h - 37D1Ch : The decompression block, this routine contains the LZH decompression engine which decompresses the compressed bios components above.

Адреса и входные точки этих процедур задаются после *BBSS* - уже фиг вспомню по каким смещением - чуток копните бутблок - там все есть.

Цитата:
original.tmp a.k.a System BIOS : E000:0000h - F000:5531h

Хм, видимо - описка, правильно будет:
...E000:0000h - F000:FFFFh.

Цитата:
awardext.rom a.k.a Award extension ROM : 4100:0000h - 4100:xxxxh . Later relocated to 6000:0000h - 6000:xxxxh by original.tmp, i.e. before it's executed.

В разных версиях Аварда и по древности и по производителям - нет единого адреса (биоспатчер, например, сканирует все возможные для поиска, где живет awardext.rom). Для старых 4.5х обычно действительно 6000:0000h - 6000:xxxx, но именно "обычно". Ибо это может быть что угодно и 1000:0 и 2000:0 и даже 5000:0. Во всех современных - в подавляющем большинстве - 1000:0.

В общем это так - результат беглого просмотра-таки этого действительно крайне полезного документа. :) Ибо если читать его подробно - видимо, придется дописывать свое... ;)
П.с. ни в коем случае не рассматривать как попытку "придраться" к нашему почетному обитателю ромбай-форума из далекой страны господина Кука :).
С точностью до наоборот - это попытка привлечь внимание всех, кому интересна эта тема. Просто дело в том, что уже теперешняя версия биоскоммандера, в плане - его модуль декомпилятора биоса - разбирает авард по косточкам, с комментариями. На выходе генерируется файл *.idc, в котором уже описываются тысячи (без преувеличения) различных смещений, переменных и констант. Т.е. получить файл биоса (для IDA, конечно) с разбивкой на функции, при чем, главные из них уже имеют правильные имена с комментариями по применению - дело всего нескольких минут. :)
Для чего это нужно? Вам - может и не нужно. А тому, кому нужно найти _конкретную_ проблему в биосе и ее решение - не придется сидеть и неделями просто "ручками" декомпилировать, читая, в том числе и вышеописанный документ... Ну, как минимум - это мне. :)
Да. Декомпилятор работает с банальнейшими _текстовыми_файликами_, где на примитивном а-ля сиподобном языке (с возможностью вставки прямого сишнго текста от иды и даже ассемблера в будущем) можно редактировать и добавлять собственные переменные для поиска. Т.е. - разобрались как работает какая-то часть биоса - добавили ее описание в файл декомпилятора - и больше не будете повторять эту операцию с любым другим биосом. И вам удобно и другим польза.
Если вы разобрались с каким-то фрагментом, который уже есть в базе - можно его закомментировать, опять же и для себя польза и другие скажут спасибо. Для стимулирования - могу ввести авторство комментариев. :)
В любом случае, некоторые части аварда уже декомпилируются практически на сто процентов. Если же взяться вместе - возможность перекомпилировать любой случайный биос - будет вовсе не фантастика, а банальная реальность... ;)
Вернуться к началу
Просмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Pinczakko

Импортный Гуру


Зарегистрирован: 28 Май 2004
Сообщения: 96
Откуда: Индонезия

СообщениеДобавлено: Сб Июл 16, 2005 5:39 am    Заголовок сообщения: Ответить с цитатой

Thx for the feedback apple_rom :wink:. It's still version Beta3 :lol: . I'm working on the suggestions that you mentioned above. I'm trying to comprehend your points :wink: . I hope a new version will be released within the next 2-3 days. Ain't sure coz I'm so busy, but thx anyway.
-- EDIT --
I've done correcting the issue you said above.

Цитата:
П.с. ни в коем случае не рассматривать как попытку "придраться" к нашему почетному обитателю ромбай-форума из далекой страны господина Кука :smile:.
С точностью до наоборот - это попытка привлечь внимание всех, кому интересна эта тема. Просто дело в том, что уже теперешняя версия биоскоммандера, в плане - его модуль декомпилятора биоса - разбирает авард по косточкам, с комментариями. На выходе генерируется файл *.idc, в котором уже описываются тысячи (без преувеличения) различных смещений, переменных и констант. Т.е. получить файл биоса (для IDA, конечно) с разбивкой на функции, при чем, главные из них уже имеют правильные имена с комментариями по применению - дело всего нескольких минут. :smile:
Для чего это нужно? Вам - может и не нужно. А тому, кому нужно найти _конкретную_ проблему в биосе и ее решение - не придется сидеть и неделями просто "ручками" декомпилировать, читая, в том числе и вышеописанный документ... Ну, как минимум - это мне. Smile
Да. Декомпилятор работает с банальнейшими _текстовыми_файликами_, где на примитивном а-ля сиподобном языке (с возможностью вставки прямого сишнго текста от иды и даже ассемблера в будущем) можно редактировать и добавлять собственные переменные для поиска. Т.е. - разобрались как работает какая-то часть биоса - добавили ее описание в файл декомпилятора - и больше не будете повторять эту операцию с любым другим биосом. И вам удобно и другим польза.
Если вы разобрались с каким-то фрагментом, который уже есть в базе - можно его закомментировать, опять же и для себя польза и другие скажут спасибо. Для стимулирования - могу ввести авторство комментариев. :smile:
В любом случае, некоторые части аварда уже декомпилируются практически на сто процентов. Если же взяться вместе - возможность перекомпилировать любой случайный биос - будет вовсе не фантастика, а банальная реальность... :wink:

That's great. I've been thinking about it for a while and I know it can be done with IDA Pro. Actually I've already working on similar IDA plugin for some time, but still have some time constraint on it coz I'm working on it alone and I'm so busy this last few months :wink:.
Anyway, I decided to write the Award BIOS Reverse Engineering Guide back then so that more people will have access to such a knowledge. I only update the article when I have spare time in the weekend or so. We both have started this thing since bpoint working on it in 2002 IIRC. And you even may have started sometime before I started my own work. I've logged some of your conversation with bpoint (in his forum):wink:, to learn something from it. I hope you won't get mad because of it :lol:. But, back then I have no working knowledge in assembly language and I decided that I have to make an article that will "accelerate" others (like me back then) in learning this thing. I mean their learning curve won't be as steep as me with the presence of such an article :wink:
_________________
-- Human knowledge belongs to the world --
-- Знания людей принадлежат миру --
Вернуться к началу
Просмотреть профиль Отправить личное сообщение Посетить сайт автора
Alex J.

Setup Defaults


Зарегистрирован: 07 Июн 2005
Сообщения: 13
Откуда: Москва

СообщениеДобавлено: Вс Июл 24, 2005 10:56 pm    Заголовок сообщения: Ответить с цитатой

В некоторых Award bios есть модуль nnoprom -
там есть код для изменения файла win.ini (или system.ini) для Win9x, в-общем из BIOS(!) в windows копируется программа-звонилка, которая заходит на сайт, принадлежавший Phoenix, если найду выложу куда-нибудь распакованный nnoporm. загрузочный экран у таких биосов графический - на белом фоне значки памяти, харда,и зелеными буквами там чего-то пишется Checking CPU,HDD и т.д. и еще показывается время.
Вернуться к началу
Просмотреть профиль Отправить личное сообщение
Pinczakko

Импортный Гуру


Зарегистрирован: 28 Май 2004
Сообщения: 96
Откуда: Индонезия

СообщениеДобавлено: Пт Фев 03, 2006 4:32 am    Заголовок сообщения: Important Update to Award BIOS Code Injection Article Ответить с цитатой

Important Update to Award BIOS Code Injection Article

OK, let me clarify, there is nothing wrong with the main concept explained in the article, i.e. the method used to inject new code into Award BIOS. But, there is something that can mislead people in the particular implementation explained there in the last section (Possible Downside and Its Workaround). I've made a "critical update" to address the issue in the latest version of the article in the following link:
Award BIOS Code Injection

To summarise, the issue is: in the original article I've claimed that the bug due to the race condition (in the sample injected-code) has been addressed, whereas, further experiment don't say so. Thus, I've carried out further experiments last week to find out the problem and has come-up with a thoroughly tested solution, i.e. a reworked patch.

well, I'll just paste the relevant code here to clarify.

#The sample injected-code in the original article (nasm syntax):
Код:

;---------------- BEGIN TWEAK.ASM --------------------------------------------------------------
BITS 16 ;just to make sure nasm prefix 66 to 32 bit instructions, we're assuming the uP
        ;is in 16 bits mode up to this point (from the boot state)

  section   .text

start:

   pushf
   push eax
   push dx

   mov eax,ioq_reg    ;patch the ioq register of the chipset
   mov dx,in_port
   out dx,eax
   mov dx,out_port
   in  eax,dx
   or  eax,ioq_mask
   out dx,eax
      
   mov eax,dram_reg ;patch the DRAM controller of the chipset,
   mov dx,in_port    ;i.e. the interleaving part
   out dx,eax
   mov dx,out_port
   in  eax,dx
   or  eax,dram_mask
   out dx,eax

   mov eax,bank_reg ;Allow pages of different bank to be active simultanoeusly
   mov dx,in_port
   out dx,eax
   mov dx,out_port
   in  eax,dx
   or  eax,bank_mask
   out dx,eax

   mov eax,tlb_reg    ;Activate Fast TLB lookup
   mov dx,in_port
   out dx,eax
   mov dx,out_port
   in  eax,dx
   or  eax,tlb_mask
   out dx,eax
   
   pop dx
   pop eax
   popf

   clc       ;indicate that this POST routine successful
   retn       ;return near to the header of the rom file

  section .data

  in_port   equ 0cf8h
  out_port  equ 0cfch
  dram_mask equ 00020202h
  dram_reg  equ 80000064h
  ioq_mask  equ 00000080h
  ioq_reg   equ 80000050h
  bank_mask equ 20000840h
  bank_reg  equ 80000068h
  tlb_mask  equ 00000008h
  tlb_reg   equ 8000006ch
;---------------- END TWEAK.ASM --------------------------------------------------------------

This code causes the system to hang in certain circumstances.


#The reworked injected-code (fasm syntax)
Код:

;------------------------------ file: mem_optimize.asm -----------------------------------
use16

start:
        pushf
        cli


        mov  cx, 0x50           ;patch the ioq register of the chipset
        call Read_PCI_Bus0_Byte
        or   al, 0x80
        mov  cx, 0x50
        call Write_PCI_Bus0_Byte

        mov  cx, 0x64           ;DRAM Bank 0/1 Interleave = 4-way
        call Read_PCI_Bus0_Byte
        or   al, 2
        mov  cx, 0x64
        call Write_PCI_Bus0_Byte

        mov  cx, 0x65           ;DRAM Bank 2/3 Interleave = 4-way
        call Read_PCI_Bus0_Byte
        or   al, 2
        mov  cx, 0x65
        call Write_PCI_Bus0_Byte

        mov  cx, 0x66           ;DRAM Bank 4/5 Interleave = 4-way
        call Read_PCI_Bus0_Byte
        or   al, 2
        mov  cx, 0x66
        call Write_PCI_Bus0_Byte

        mov  cx, 0x67           ;DRAM Bank 6/7 Interleave = 4-way
        call Read_PCI_Bus0_Byte
        or   al, 2
        mov  cx, 0x67
        call Write_PCI_Bus0_Byte

        mov  cx, 0x68           ;Allow pages of different bank to be active simultanoeusly
        call Read_PCI_Bus0_Byte
        or   al, 0x44
        mov  cx, 0x68
        call Write_PCI_Bus0_Byte

        mov  cx, 0x69           ;Fast DRAM Precharge for Different Bank
        call Read_PCI_Bus0_Byte
        or   al, 0x8
        mov  cx, 0x69
        call Write_PCI_Bus0_Byte

        mov  cx, 0x6C           ;Activate Fast TLB lookup
        call Read_PCI_Bus0_Byte
        or   al, 0x8
        mov  cx, 0x6C
        call Write_PCI_Bus0_Byte


        popf

        clc              ;indicate that this POST routine successful
        retn             ;return near to the header of the rom file


;-- Read_PCI_Byte__ --
;in: cx = dev_func_offset_addr
;out: al = reg_value

Read_PCI_Bus0_Byte:
        mov   ax, 8000h
        shl   eax, 10h
        mov   ax, cx
        and   al, 0FCh
        mov   dx, 0CF8h
        out   dx, eax
        mov   dl, 0FCh ; '?'
        mov   al, cl
        and   al, 3
        add   dl, al
        in    al, dx
        retn


;-- Write_Bus0_Byte --
;in: cx = dev_func_offset addr
;al = reg_value to write

Write_PCI_Bus0_Byte:
        xchg  ax, cx
        shl   ecx, 10h
        xchg  ax, cx
        mov   ax, 8000h
        shl   eax, 10h
        mov   ax, cx
        and   al, 0FCh
        mov   dx, 0CF8h
        out   dx, eax
        add   dl, 4
        or    dl, cl
        mov   eax, ecx
        shr   eax, 10h
        out   dx, al
        retn
;------------------------------ file: mem_optimize.asm -----------------------------------

This new patch (injected-code) is working flawlessly during the "patch-integrity" test, i.e. more than a hundred boot-reboot cycle :wink:

sorry for the inconvenience.

greetz,
Pinczakko
_________________
-- Human knowledge belongs to the world --
-- Знания людей принадлежат миру --
Вернуться к началу
Просмотреть профиль Отправить личное сообщение Посетить сайт автора
Alexey

Гость





СообщениеДобавлено: Пт Мар 24, 2006 11:17 am    Заголовок сообщения: Ответить с цитатой

Послушайте вот у меня нет acbrom. Я пытаюсь хексом вытащить оригинал, распаковать, поправить, запаковать. Только размер получается разный. В раре больше, а в лошарике меньше. Хотя если взять и изменить имя запаковываемого модуля на +- несколько символов, то можно сделать одинаковый размер и вставить вместо куска во всём биосе. Какие проблемы могут возникнуть?
Вернуться к началу
FatumNNM

1.0Mbit Patched
1.0Mbit Patched


Зарегистрирован: 22 Дек 2004
Сообщения: 183
Откуда: Северный Кавказ

СообщениеДобавлено: Пн Июл 31, 2006 4:08 pm    Заголовок сообщения: Ответить с цитатой

Если бы кто-нибудь расписал бы ещё как измененить свойства подпунктов меню, то было бы прелестно !
_________________
Модденые биосы для мат. плат
Вернуться к началу
Просмотреть профиль Отправить личное сообщение Отправить e-mail
yoric

Modbined&Cbromed
Modbined&Cbromed


Зарегистрирован: 03 Мар 2005
Сообщения: 32
Откуда: Новосибирск

СообщениеДобавлено: Чт Авг 10, 2006 11:59 am    Заголовок сообщения: Ответить с цитатой

Так а биоскоммандер этот самый доступен где-нибудь?
_________________
--
Спасибо за внимание.
Вернуться к началу
Просмотреть профиль Отправить личное сообщение
DanZer

Добрый шаман


Зарегистрирован: 06 Май 2003
Сообщения: 2796
Откуда: Эссо, Камчатка

СообщениеДобавлено: Чт Авг 10, 2006 1:03 pm    Заголовок сообщения: Ответить с цитатой

Нет. Ждем-с... Причем сказать что со дня на день - значит крупно соврать...
_________________
Настоящий джентльмен назовет кошку кошкой, даже наступив на нее в темноте.
Что-то ищем? В Google!
Вопросы и ответы по процессорам AMD здесь. AMD FAQ in English also available there
Вернуться к началу
Просмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Pinczakko

Импортный Гуру


Зарегистрирован: 28 Май 2004
Сообщения: 96
Откуда: Индонезия

СообщениеДобавлено: Пн Авг 14, 2006 1:48 pm    Заголовок сообщения: Ответить с цитатой

I've added another article:
Pinczakko's Guide to Self-patching Expansion ROM Source Code

This article explain how you can build an ISA expansion ROM with Fasm without having to take care of the checksum and let Fasm patch the checksum automatically in your expansion ROM source code.

The technique is easily extended for PCI expansion ROM development. However, due to lack of time. I don't present it there. You can figure it out easily yourself :wink:

Anyway, you'd better read flat assembler 1.66 user manual section 2.2.4. If you are confused with the use of the preprocessor in the article :wink:
_________________
-- Human knowledge belongs to the world --
-- Знания людей принадлежат миру --
Вернуться к началу
Просмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему   Страница 1 из 1 Часовой пояс: GMT + 4
Список форумов Ромбофорум » BIOS » Редактирование BIOS » статья B Award BIOS

 

Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


EOMY.NET: бесплатный хостинг без рекламы Rambler's Top100
Space Pilot 3K v2 (v1.1) template © 2002-2005 Jakob Persson (readme)(forumthemes/bbstyles)

Powered by phpBB © 2001-2005 phpBB Group
Хостинг сайта: EOMY.NET